80 lines
2.1 KiB
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
|