infra-ansible
ansible script to ship alpine/ssh/wireguard
git clone https://9o.is/git/infra-ansible.git
build.yml
(2032B)
1 ---
2 - name: build alpine locally
3 delegate_to: localhost
4 block:
5 - name: create iso directory
6 file:
7 path: '{{ alpine_output }}/iso'
8 mode: '0700'
9 state: directory
10
11 - name: add Containerfile
12 template:
13 src: Containerfile.j2
14 dest: '{{ alpine_output }}/Containerfile'
15 mode: '0600'
16
17 - name: add entrypoint.sh
18 template:
19 src: entrypoint.sh.j2
20 dest: '{{ alpine_output }}/entrypoint.sh'
21 mode: '0755'
22
23 - name: add mkimg.x.sh
24 template:
25 src: mkimg.x.sh.j2
26 dest: '{{ alpine_output }}/mkimg.x.sh'
27 mode: '0755'
28
29 - name: add genapkovl-mkimgoverlay.sh
30 template:
31 src: genapkovl-mkimgoverlay.sh.j2
32 dest: '{{ alpine_output }}/genapkovl-mkimgoverlay.sh'
33 mode: '0755'
34
35 - name: build alpine-builder
36 podman_image:
37 name: alpine-builder
38 path: '{{ alpine_output }}'
39 force: true
40 register: alpine_builder
41
42 - name: check alpine iso
43 become: true
44 stat:
45 path: '{{ alpine_iso }}'
46 register: iso_file
47
48 - name: build alpine iso
49 containers.podman.podman_container:
50 name: 'alpine-builder-{{ inventory_hostname }}'
51 image: alpine-builder
52 rm: true
53 detach: false
54 volume:
55 - '{{ alpine_iso_dir }}:/iso'
56 when: not iso_file.stat.exists or alpine_builder.changed
57 register: iso_build
58
59 - name: fix ownership of iso directory
60 become: true
61 file:
62 path: '{{ alpine_iso_dir }}'
63 state: directory
64 recurse: true
65 owner: user
66 group: user
67
68 - name: show next steps
69 debug:
70 msg:
71 - 'ISO is ready for manual installation.'
72 - '1) Mount iso {{ playbook_dir }}/{{ alpine_iso }}'
73 - '2) Run setup-disk'
74 when: not debian_preinstalled and iso_build.changed
75