/ liw.yml
liw.yml
1 - hosts: image 2 tasks: 3 4 - name: "ensure /etc/resolv.conf exists" 5 copy: 6 content: | 7 nameserver 8.8.8.8 8 dest: /etc/resolv.conf 9 10 - name: "set up eth0 as a network" 11 copy: 12 content: | 13 [Match] 14 Name=eth0 15 16 [Network] 17 DHCP=yes 18 dest: /etc/systemd/network/external.network 19 20 - name: "enable systemd-networkd" 21 systemd: 22 name: systemd-networkd 23 enabled: yes 24 25 - name: "install apt.liw.fi signing key" 26 copy: 27 content: | 28 {{ apt_liw_fi_signing_key }} 29 dest: /etc/apt/trusted.gpg.d/apt.liw.fi.asc 30 31 - name: "add the apt.liw.fi APT repository" 32 apt_repository: 33 repo: "deb http://apt.liw.fi/debian unstable main" 34 update_cache: no 35 36 - name: "update apt cache" 37 shell: | 38 apt-get update 39 40 - name: "remove ping so it can be re-installed" 41 apt: 42 name: iputils-ping 43 state: absent 44 45 - name: "install tools and build-dependencies" 46 apt: 47 name: 48 - asciidoctor 49 - bind9-dnsutils 50 - bind9-host 51 - build-essential 52 - cmake 53 - curl 54 - daemonize 55 - debhelper 56 - devscripts 57 - dh-python 58 - genisoimage 59 - git 60 - graphviz 61 - ikiwiki 62 - iproute2 63 - iputils-ping 64 - jq 65 - libimage-magick-perl 66 - librsvg2-bin 67 - libsqlite3-dev 68 - libssl-dev 69 - libvirt-dev 70 - moreutils 71 - musl-dev 72 - musl-tools 73 - netcat-openbsd 74 - openssh-client 75 - openssh-server 76 - pandoc 77 - perlmagick 78 - pkg-config 79 - plantuml 80 - procps 81 - python3-cliapp 82 - python3-coverage-test-runner 83 - python3-jinja2 84 - python3-requests 85 - rsync 86 - shellcheck 87 - sq 88 - sqop 89 - sqlite3 90 - subplot 91 - systemd-resolved 92 - summain 93 - tidy 94 - xorriso 95 96 - name: "configure root to be able to access localhost over SSH" 97 shell: | 98 cd /root 99 install -d .ssh 100 ssh-keygen -t ed25519 -N '' -f .ssh/id_ed25519 101 cp .ssh/id_ed25519.pub .ssh/authorized_keys 102 103 - name: "ensure /etc/resolv.conf exists" 104 copy: 105 content: | 106 nameserver 8.8.8.8 107 dest: /etc/resolv.conf 108 109 - name: "install rustup" 110 shell: | 111 set -eu 112 113 cat /etc/resolv.conf 114 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rustup.sh 115 sh /tmp/rustup.sh -y --no-modify-path 116 export PATH="$HOME/.cargo/bin:$PATH" 117 118 args="--component rust-src --target x86_64-unknown-linux-gnu,x86_64-unknown-linux-musl" 119 rustup set profile default 120 121 # rustup toolchain install $args 1.80-x86_64-unknown-linux-gnu 122 # rustup toolchain install $args 1.81-x86_64-unknown-linux-gnu 123 # rustup toolchain install $args 1.82-x86_64-unknown-linux-gnu 124 # rustup toolchain install $args 1.83-x86_64-unknown-linux-gnu 125 # rustup toolchain install $args 1.84-x86_64-unknown-linux-gnu 126 # rustup toolchain install $args 1.85-x86_64-unknown-linux-gnu 127 # rustup toolchain install $args 1.86-x86_64-unknown-linux-gnu 128 # rustup toolchain install $args 1.87-x86_64-unknown-linux-gnu 129 # rustup toolchain install $args 1.88-x86_64-unknown-linux-gnu 130 # rustup toolchain install $args 1.89-x86_64-unknown-linux-gnu 131 rustup toolchain install $args 1.90-x86_64-unknown-linux-gnu 132 # rustup toolchain install $args 1.91-x86_64-unknown-linux-gnu 133 rustup toolchain install $args 1.92-x86_64-unknown-linux-gnu 134 rustup toolchain install $args 1.93-x86_64-unknown-linux-gnu 135 rustup toolchain install $args 1.94-x86_64-unknown-linux-gnu 136 rustup toolchain install $args stable-x86_64-unknown-linux-gnu 137 138 rustup toolchain install $args stable-unknown-linux-gnu 139 140 rustup default stable 141 rustup show 142 set -eu 143 [ "$HOME/.rustup/toolchains/1.80-x86_64-unknown-linux-gnu" ] || exit 42 144 145 cargo install rsop 146 cargo install cargo-deny 147 cargo install cargo-mutants 148 cargo install cargo-semver-checks 149 150 - name: "install Radicle" 151 shell: | 152 curl -sSf https://radicle.xyz/install | sh 153 154 - name: "clone ikiwiki plugin for Pandoc" 155 git: 156 repo: https://github.com/dubiousjim/pandoc-iki 157 dest: /root/pandoc-iki 158 159 - name: "create ikiwiki plugin directory" 160 file: 161 state: directory 162 path: /root/.ikiwiki/IkiWiki/Plugin 163 164 - name: "install Pandoc plugin for ikiwiki" 165 shell: | 166 cp /root/pandoc-iki/pandoc.pm /root/.ikiwiki/IkiWiki/Plugin/pandoc.pm 167 168 vars: 169 ansible_python_interpreter: /usr/bin/python3 170 171 apt_liw_fi_signing_key: | 172 -----BEGIN PGP PUBLIC KEY BLOCK----- 173 174 xjMEZ3UIFRYJKwYBBAHaRw8BAQdA34oqdsK27ZNLmPXUqHoXX3tm9dK5oh8fToCd 175 qdiE4RvCwBEEHxYKAIMFgmd1CBUFiQPDCmgDCwkHCRCHbMaEHWOFpUcUAAAAAAAe 176 ACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmc76NUR51YnVp7W4bRsQx9R 177 J2yi3A9mwLaVn2zYUGAJewMVCggCmwECHgEWIQR0g82c7caXQJHMI8SHbMaEHWOF 178 pQAACDMA/1BxP7F57KmezrCd78wlPII50FYCcAY6Oy6ktt1ylc+fAP9GywXoAUfE 179 7TMlHN4iI8Pzzsxajg56AnmfMz0veqxdC80rYXB0Lmxpdy5maSBhcmNoaXZlIHNp 180 Z25pbmcga2V5IDxsaXdAbGl3LmZpPsLAFAQTFgoAhgWCZ3UIFQWJA8MKaAMLCQcJ 181 EIdsxoQdY4WlRxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9y 182 Zwkppuyk5O7STFqvYzi8hnzLQ0mti7I4OYg+kRTphghUAxUKCAKZAQKbAQIeARYh 183 BHSDzZztxpdAkcwjxIdsxoQdY4WlAAC0mwD/Q7ABnxn2Jy37CHP9EyFPdVaO5ENU 184 aqPLUVSF1NmlEkEA/1ZmETsa+KXfnSB/GpvetKhl1VCyG/rsSLdEzfvMCRALzjME 185 Z3UIFRYJKwYBBAHaRw8BAQdARSOzKWPyK5rFht5mXWe2DjK15ComDDaSDXdnq4bS 186 C+zCwMUEGBYKATcFgmd1CBUFiQPDCmgJEIdsxoQdY4WlRxQAAAAAAB4AIHNhbHRA 187 bm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZ2W+k0jwxxhPAgUcxHh/2aOuitRgwCi4 188 TiHPJmmS7eCpApsCvqAEGRYKAG8Fgmd1CBUJECC2GYwMFDhHRxQAAAAAAB4AIHNh 189 bHRAbm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZzAZr3RGjXFF1oTW06+FQF0iWuw0 190 ANCOGMzF6rzN9nQBFiEEUbdouiNHX9kqE3VAILYZjAwUOEcAAPUqAP9LSG4ofP10 191 QknSy+Im5ThT+sAjZqjYR1JPASM7db67NAD/aFZttFGxfX6OIK6G2C5pMBEfqDVw 192 qp9RGrAyKlrfiwYWIQR0g82c7caXQJHMI8SHbMaEHWOFpQAAWYQBAPdhxkEY9U2T 193 HdyS9vNunXdEMY9CT7tzrU77Jw9hYZdeAQCdHM2E1hLxMv8urUQQxYrU5Qlz9YMk 194 mULKMX/pX/boDQ== 195 =H+pg 196 -----END PGP PUBLIC KEY BLOCK-----