From 6a90803ae6da0759723deda24d746d18e2fb8b8c Mon Sep 17 00:00:00 2001 From: jaseg Date: Wed, 27 Mar 2019 18:28:57 +0900 Subject: gerboweb: Initial commit The functionality is there, no design yet --- playbook.yml | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 playbook.yml (limited to 'playbook.yml') diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..a510772 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,100 @@ +- name: Gerbolyze container setup playbook + hosts: localhost + connection: local + tasks: + - 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 + + - name: Install host requisites + become: yes + dnf: + name: btrfs-progs,arch-install-scripts + state: latest + + - name: Create container image file + become: yes + shell: truncate -s 4G /var/cache/gerbolyze_container.img + args: + creates: /var/cache/gerbolyze_container.img + + - name: Create container image filesystem + become: yes + filesystem: + dev: /var/cache/gerbolyze_container.img + fstype: btrfs + + - name: Create container image fstab entry + become: yes + mount: + src: /var/cache/gerbolyze_container.img + path: /var/cache/gerbolyze_container + state: mounted + fstype: btrfs + opts: loop + + - name: Unpack bootstrap image + become: yes + unarchive: + remote_src: yes + src: /tmp/arch-bootstrap.tar.xz + dest: /var/cache/gerbolyze_container + extra_opts: --strip-components=1 + creates: /var/cache/gerbolyze_container/etc + + - name: Copy mirrorlist into container + become: yes + copy: + src: mirrorlist + dest: /var/cache/gerbolyze_container/etc/pacman.d/mirrorlist + + - name: Copy render script + become: yes + copy: + src: render.sh + dest: /usr/local/sbin/gerbolyze_render.sh + mode: ug+x + + - name: Copy vector script + become: yes + copy: + src: vector.sh + dest: /usr/local/sbin/gerbolyze_vector.sh + mode: ug+x + + - name: Initialize container pacman keyring + become: yes + shell: arch-chroot /var/cache/gerbolyze_container pacman-key --init && arch-chroot /var/cache/gerbolyze_container pacman-key --populate archlinux + args: + creates: /var/cache/gerbolyze_container/etc/pacman.d/gnupg + + - name: Fixup pacman.conf for pacman to work in chroot without its own root fs + become: yes + lineinfile: + path: /var/cache/gerbolyze_container/etc/pacman.conf + regexp: '^CheckSpace' + line: '#CheckSpace' + + - name: Update container and install software + become: yes + shell: arch-chroot /var/cache/gerbolyze_container pacman -Syu --noconfirm python3 opencv hdf5 gtk3 python-numpy python-pip imagemagick unzip zip + + # TODO maybe install directly from local git checkout? + - name: Install gerbolyze + become: yes + shell: arch-chroot /var/cache/gerbolyze_container pip install -U --upgrade-strategy=eager gerbolyze + + # - name: Cleanup bootstrap image + # file: + # path: /tmp/arch-bootstrap.tar.xz + # state: absent + + - name: Create app cache directory + file: + path: /var/cache/gerboweb + owner: user # FIXME debug + group: user # FIXME debug + mode: 0770 + -- cgit