Start a jail task which creates the zfs datasets and installs a new_jail script.
This commit is contained in:
42
ansible/roles/jail/tasks/freebsd.yaml
Normal file
42
ansible/roles/jail/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
- name: Create common zfs datasets
|
||||
zfs:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
extra_zfs_properties:
|
||||
mountpoint: "none"
|
||||
loop: "{{ ((jail_list | community.general.json_query('[*].dataset')) + [jail_zfs_dataset]) | product(['', '/persistent', '/jails']) | map('join', '') }}"
|
||||
|
||||
- name: Create jail zfs datasets
|
||||
zfs:
|
||||
name: "{{ item.dataset|default(jail_zfs_dataset) }}/jails/{{ item.name }}"
|
||||
state: present
|
||||
extra_zfs_properties: '{{ {''mountpoint'': item.dataset_mountpoint|default(jail_zfs_dataset_mountpoint) + "/jails/" + item.name}|combine(item.properties|default({})) }}'
|
||||
|
||||
loop: "{{ jail_list }}"
|
||||
|
||||
- name: Create persistent jail zfs datasets
|
||||
zfs:
|
||||
name: "{{ item.dataset|default(jail_zfs_dataset) }}/persistent/{{ item.name }}"
|
||||
state: present
|
||||
extra_zfs_properties:
|
||||
mountpoint: "none"
|
||||
when: item.persist|default([])|length > 0
|
||||
loop: "{{ jail_list }}"
|
||||
|
||||
- name: Create jail specific zfs datasets
|
||||
zfs:
|
||||
name: "{{ item.0.dataset|default(jail_zfs_dataset) }}/persistent/{{ item.0.name }}/{{ item.1.name }}"
|
||||
state: present
|
||||
extra_zfs_properties: '{{ {''mountpoint'': item.0.dataset_mountpoint|default(jail_zfs_dataset_mountpoint) + "/jails/" + item.0.name + item.1.mount }|combine(item.1.properties|default({})) }}'
|
||||
loop: "{{ jail_list|subelements('persist', skip_missing=True) }}"
|
||||
|
||||
- name: Install scripts
|
||||
template:
|
||||
src: "templates/{{ item.src }}.j2"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: new_jail.bash
|
||||
dest: /usr/local/bin/new_jail
|
||||
Reference in New Issue
Block a user