BSA_AIS/lxc_ansible.yaml

80 lines
2.1 KiB
YAML

---
- name: Erstelle LXC
hosts: lokal
vars:
lxc_containers:
- ansible-lxc
- db2
- web
- informaticker
tasks:
- name: Erstelle ansible lxc
become: yes
lxc_container:
name: "{{ item }}"
state: started
loop: "{{ lxc_containers }}"
register: ansible_lxc_container
- debug:
var: item
loop: "{{ ansible_lxc_container['results'] }}"
when: ansible_lxc_container is changed
- name: Dienste neustarten
become: yes
service:
name: "{{ item }}"
state: restarted
loop:
- lxc-net
- systemd-resolved
when: ansible_lxc_container is changed
- name: Make a break
pause:
seconds: 20
when: ansible_lxc_container is changed
- name: Erstelle ansible lxc
become: yes
lxc_container:
name: "{{ item }}"
state: started
register: ansible_lxc_container
loop: "{{ lxc_containers }}"
- debug:
var: ansible_lxc_container
- name: Erstelle lxc-inventory
copy:
dest: lxc_inventory
content: |
[lxc]
[lxc:vars]
- name: Hosteinträge
lineinfile:
path: lxc_inventory
insertbefore: [lxc:vars]
regexp: "^{{ item.lxc_container.name }} ansible_host={{ item.lxc_container.ips[0] }}"
line: "{{ item.lxc_container.name }} ansible_host={{ item.lxc_container.ips[0] }}"
loop: "{{ ansible_lxc_container['results'] }}"
- name: Gruppenvariablen anhängen
blockinfile:
path: lxc_inventory
insertafter: [lxc:vars]
block: |
ansible_user=ubuntu
ansible_password=ubuntu
ansible_ssh_common_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
ansible_become_pass=ubuntu
...
# Bootstrapping neues Verzeichnis mit ansible.cfg und Inventory Datei
# ansible --inventory localhost, --connection=local --module-name copy --args="dest=ansible.cfg content=[defaults]\ninventory=my_hosts\n" localhost
# ansible --inventory localhost, --connection=local --module-name copy --args="dest=my_hosts content=[lokal]\nlocalhost\tansible_connection=local\n" localhost