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