Bootstraping mit ansible und lxc
Datei zum Bootstrapping von ansible und lxc Maschinen.
This commit is contained in:
		
							parent
							
								
									a572a0f2c8
								
							
						
					
					
						commit
						4340d11275
					
				| 
						 | 
					@ -0,0 +1,79 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					- 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
 | 
				
			||||||
		Loading…
	
		Reference in New Issue