pb_iocage_ansible_clients ------------------------- .. contents:: :local: :depth: 3 .. index:: single: pb_iocage_ansible_clients.yml; pb_iocage_ansible_clients .. index:: single: clones; pb_iocage_ansible_clients .. index:: single: swarms; pb_iocage_ansible_clients .. index:: single: clone_host_hostname; pb_iocage_ansible_clients .. index:: single: mount; pb_iocage_ansible_clients .. index:: single: fstab; pb_iocage_ansible_clients .. index:: single: host_hostname; pb_iocage_ansible_clients .. index:: single: allow_mount; pb_iocage_ansible_clients .. index:: single: allow_mount_zfs; pb_iocage_ansible_clients .. index:: single: jail_zfs; pb_iocage_ansible_clients Synopsis ^^^^^^^^ This playbook creates ``jails`` from the ``templates``. Examples ^^^^^^^^ clones """""" Use the dictionary ``clones``. For example, .. code-block:: yaml clones: test_111: clone_from: ansible_client properties: ip4_addr: 'em0|10.1.0.111/24' test_112: clone_from: ansible_client properties: ip4_addr: 'em0|10.1.0.112/24' test_113: clone_from: ansible_client properties: ip4_addr: 'em0|10.1.0.113/24' Use the playbook tag ``clone`` to execute selected tasks .. code-block:: console (env) > ansible-playbook pb_iocage_ansible_clients.yml -t clone -e clone=true creates the clones .. code-block:: console shell> iocage list -l +-----+----------+------+-------+------+-----------------+-------------------+-----+----------------+----------+ | JID | NAME | BOOT | STATE | TYPE | RELEASE | IP4 | IP6 | TEMPLATE | BASEJAIL | +=====+==========+======+=======+======+=================+===================+=====+================+==========+ | 170 | test_111 | off | up | jail | 14.1-RELEASE-p6 | em0|10.1.0.111/24 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+-------------------+-----+----------------+----------+ | 171 | test_112 | off | up | jail | 14.1-RELEASE-p6 | em0|10.1.0.112/24 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+-------------------+-----+----------------+----------+ | 172 | test_113 | off | up | jail | 14.1-RELEASE-p6 | em0|10.1.0.113/24 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+-------------------+-----+----------------+----------+ swarms """""" Use the dictionary ``swarms``. For example, .. code-block:: yaml swarms: sw_01: count: 3 template: ansible_client Use the playbook tag ``swarm`` to execute selected tasks .. code-block:: console (env) > ansible-playbook pb_iocage_ansible_clients.yml -t swarm -e swarm=true creates 3 jails from the template ``ansible_client``. The names are generated automatically .. code-block:: console shell> iocage list -l +-----+----------+------+-------+------+-----------------+--------------------+-----+----------------+----------+ | JID | NAME | BOOT | STATE | TYPE | RELEASE | IP4 | IP6 | TEMPLATE | BASEJAIL | +=====+==========+======+=======+======+=================+====================+=====+================+==========+ | 64 | 08daa493 | off | up | jail | 14.1-RELEASE-p6 | epair0b|10.1.0.114 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+--------------------+-----+----------------+----------+ | 65 | 2746353a | off | up | jail | 14.1-RELEASE-p6 | epair0b|10.1.0.187 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+--------------------+-----+----------------+----------+ | 66 | 83707231 | off | up | jail | 14.1-RELEASE-p6 | epair0b|10.1.0.233 | - | ansible_client | no | +-----+----------+------+-------+------+-----------------+--------------------+-----+----------------+----------+ clone_host_hostname """"""""""""""""""" Use the dictionary ``clone_host_hostname``. The keys are used to create hostnames. Create ``fstab`` entries. See the ``iocage`` property ``host_hostname``. For example, .. code-block:: yaml clones_host_hostname: www-5: template: ansible_client_apache fstab: - spec: /usr/local/poudriere file: /usr/local/poudriere type: nullfs options: ro 0 0 Use the playbook tag ``clone_host_hostname`` to execute selected tasks .. code-block:: console (env) > ansible-playbook pb_iocage_ansible_clients.yml \ -t clone_host_hostname -e clone_host_hostname=true default properties """""""""""""""""" The dictionary ``properties`` keeps the default properties. For example, .. code-block:: yaml properties: notes: "vmm={{ inventory_hostname }}" vnet: 1 defaultrouter: 10.1.0.10 , get the DHCP address .. code-block:: yaml properties: notes: "vmm={{ inventory_hostname }}" bpf: 1 dhcp: 1 vnet: 1 , or mount datasets .. code-block:: yaml properties: notes: "vmm={{ inventory_hostname }}" bpf: 1 dhcp: 1 vnet: 1 allow_mount: 1 allow_mount_zfs: 1 jail_zfs: 1 .. seealso:: :ref:`ug_bp_iocage_tags` .. hint:: Look at the ``Index`` and search the playbook ``pb_iocage_ansible_client.yml`` to see what examples are available. Workflow ^^^^^^^^ TBD