--- - hosts: localhost # run this task in the host connection: local tasks: - name: create containers cent # get all host names from inventory loop: "{{ groups['centos'] }}" # use lxd_container module from ansible to create containers lxd_container: # container name is the hostname name: "{{ item }}" state: started source: type: image mode: pull server: https://images.linuxcontainers.org protocol: simplestreams alias: centos/8-Stream/cloud config: # nomad clients need some privileges to be able to run docker containers security.nesting: "{{ 'true' if item in ['nomad-client1', 'nomad-client2', 'nomad-client3'] else 'false' }}" security.privileged: "{{ 'true' if item in ['nomad-client1', 'nomad-client2', 'nomad-client3'] else 'false' }}" devices: # configure network interface eth0: type: nic nictype: bridged parent: lxdbr0 # get ip address from inventory ipv4.address: "{{ hostvars[item].ip_address }}" # # uncomment if you installed lxd using snap # url: unix:/var/snap/lxd/common/lxd/unix.socket - name: create containers ubuntu # get all host names from inventory loop: "{{ groups['ubuntu'] }}" # use lxd_container module from ansible to create containers lxd_container: # container name is the hostname name: "{{ item }}" state: started source: type: image mode: pull server: https://images.linuxcontainers.org protocol: simplestreams alias: ubuntu/bionic/amd64 config: # nomad clients need some privileges to be able to run docker containers security.nesting: "{{ 'true' if item in ['nomad-client1', 'nomad-client2', 'nomad-client3'] else 'false' }}" security.privileged: "{{ 'true' if item in ['nomad-client1', 'nomad-client2', 'nomad-client3'] else 'false' }}" devices: # configure network interface eth0: type: nic nictype: bridged parent: lxdbr0 # get ip address from inventory ipv4.address: "{{ hostvars[item].ip_address }}" # # uncomment if you installed lxd using snap # url: unix:/var/snap/lxd/common/lxd/unix.socket