blob: a26351b21574ceecbe1bb686d90d76d51278a5d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
- name: create jails dataset
community.general.zfs:
name: poolen/jails
state: present
extra_zfs_properties:
mountpoint: /usr/local/jails
- name: create jails tank dataset
community.general.zfs:
name: poolen/jails/tank
state: present
- name: create base jail dataset
community.general.zfs:
name: poolen/jails/base
state: present
- name: install base jail
shell: |
set -e
bsdinstall checksum || echo 'checksums failed'
bsdinstall distextract || echo 'distextract failed'
bsdinstall config || error 'failed to save config'
bsdinstall entropy
environment:
BSDINSTALL_CHROOT: "/usr/local/jails/base"
DISTRIBUTIONS: "base.txz"
nonInteractive: "YES"
args:
creates: "/usr/local/jails/base/bin"
- name: configure base jail
shell: |
cp /etc/resolv.conf /usr/local/jails/base/etc/
cp /etc/localtime /usr/local/jails/base/etc/
cp /var/db/zoneinfo /usr/local/jails/base/var/db/
args:
creates: "/usr/local/jails/base/etc/resolv.conf"
- name: apply updates for base jail
ansible.builtin.shell: |
freebsd-update -b /usr/local/jails/base fetch
freebsd-update -b /usr/local/jails/base install
register: result_update
failed_when: result_update.rc != 0 and result_update.rc != 2
changed_when: result_update.rc != 2
- name: determine patch level of base jail
shell: /usr/local/jails/base/bin/freebsd-version -u
register: patch_level
environment:
ROOT: /usr/local/jails/base
- name: snapshot the base jail
community.general.zfs:
name: "poolen/jails/base@{{ patch_level.stdout }}"
state: present
- name: set patch level as fact
ansible.builtin.set_fact:
base_jail_patch_level: "{{ patch_level.stdout }}"
cacheable: yes
|