diff options
author | jaseg <code@jaseg.net> | 2019-04-02 04:36:10 +0900 |
---|---|---|
committer | jaseg <git@jaseg.net> | 2019-04-02 04:36:10 +0900 |
commit | cbb98bcf0ee0e9e123f054377ff68b513efe6bf6 (patch) | |
tree | d44deea64134600a6b385c3c4a773aadc20812cf /gerboweb/deploy/bootstrap_arch_container.yml | |
parent | a846d39bc88e0c03402b20790b04762666bc055f (diff) | |
download | gerbolyze-cbb98bcf0ee0e9e123f054377ff68b513efe6bf6.tar.gz gerbolyze-cbb98bcf0ee0e9e123f054377ff68b513efe6bf6.tar.bz2 gerbolyze-cbb98bcf0ee0e9e123f054377ff68b513efe6bf6.zip |
gerboweb: Modularize deployment playbooks a bit
Diffstat (limited to 'gerboweb/deploy/bootstrap_arch_container.yml')
-rw-r--r-- | gerboweb/deploy/bootstrap_arch_container.yml | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gerboweb/deploy/bootstrap_arch_container.yml b/gerboweb/deploy/bootstrap_arch_container.yml new file mode 100644 index 0000000..bd534e8 --- /dev/null +++ b/gerboweb/deploy/bootstrap_arch_container.yml @@ -0,0 +1,60 @@ +--- +- name: Set local path facts + set_fact: + image: "/var/cache/containers/{{ container }}.img" + root: "/var/cache/containers/{{ container }}_root" + "{{container}}_root": "/var/cache/containers/{{ container }}_root" + +- name: Create container image file + command: truncate -s 4G "{{image}}" + args: + creates: "{{image}}" + register: create_container + +- name: Download arch bootstrap image + get_url: + url: http://mirror.rackspace.com/archlinux/iso/2019.03.01/archlinux-bootstrap-2019.03.01-x86_64.tar.gz + dest: /tmp/arch-bootstrap.tar.xz + checksum: sha256:865c8a25312b663e724923eecf0dfc626f4cd621e2cfcb19eafc69a4fc666756 + when: create_container is changed + +- name: Create container image filesystem + filesystem: + dev: "{{image}}" + fstype: btrfs + +- name: Create container image fstab entry + mount: + src: "{{image}}" + path: "{{root}}" + state: mounted + fstype: btrfs + opts: loop + +- name: Unpack bootstrap image + unarchive: + remote_src: yes + src: /tmp/arch-bootstrap.tar.xz + dest: "{{root}}" + extra_opts: --strip-components=1 + creates: "{{root}}/etc" + +- name: Copy mirrorlist into container + copy: + src: mirrorlist + dest: "{{root}}/etc/pacman.d/mirrorlist" + +- name: Initialize container pacman keyring + shell: arch-chroot "{{root}}" pacman-key --init && arch-chroot "{{root}}" pacman-key --populate archlinux + args: + creates: "{{root}}/etc/pacman.d/gnupg" + +- name: Fixup pacman.conf for pacman to work in chroot without its own root fs + lineinfile: + path: "{{root}}/etc/pacman.conf" + regexp: '^CheckSpace' + line: '#CheckSpace' + +- name: Update container and install software + shell: arch-chroot "{{root}}" pacman -Syu --noconfirm + |