rpm-ostree/vagrant/setup.yml
Jonathan Lebon c53d8fa9cb setup.yml: cache buildimg container
By far the longest step in provisioning a new VM is the building of the
container. This helps alleviate things a little by caching it on the
host. It's not a complete solution however. We also need to make it easy
to update an existing container.

Closes: #344
Approved by: cgwalters
2016-06-23 00:05:09 +00:00

69 lines
2.1 KiB
YAML

---
- hosts: all
gather_facts: no
become: yes
tasks:
- name: add CAHC ostree remote
command: >
ostree remote add --set=gpg-verify=false centos-atomic-continuous
https://ci.centos.org/artifacts/sig-atomic/rdgo/centos-continuous/ostree/repo/
args:
creates: /etc/ostree/remotes.d/centos-atomic-continuous.conf
# Experimenting with this as a potential new name.
- name: link nxs -> rpm-ostree
file: src=/usr/bin/rpm-ostree dest=/usr/local/bin/nxs owner=0 group=0 state=link
# add a little bit of storage (default is 3G) or docker save complains
- name: resize root
shell: lvresize -L 4G -r /dev/atomicos/root && touch /root/.resized
args:
creates: /root/.resized
- name: check for builder image
command: docker inspect rpm-ostree-builder
failed_when: False
changed_when: False
register: inspect
- name: check for local cache of builder image
local_action: stat path=vagrant/buildimg.tar.gz
register: cache
become: no
- set_fact:
# the image is available on the guest
on_guest: "{{ inspect.rc == 0 | bool }}"
# the image is available on the host
on_host: "{{ cache.stat.isreg is defined and cache.stat.isreg | bool }}"
# sync them up, building if necessary
# XXX: this is just a stopgap, we should also make it easy to update the
# container without having to rebuild it completely
- name: copy cached builder image
copy: src=buildimg.tar.gz dest=/tmp
when: not on_guest and on_host
- name: import cached builder image
shell: gunzip -c /tmp/buildimg.tar.gz | docker load
when: not on_guest and on_host
- name: build builder image
command: make buildimg
args:
chdir: sync/vagrant
when: not on_guest and not on_host
- name: export builder image
shell: docker save rpm-ostree-builder | gzip -c > /tmp/buildimg.tar.gz
when: not on_host
args:
creates: /tmp/buildimg.tar.gz
- name: fetch cached builder image
fetch: src=/tmp/buildimg.tar.gz dest=. flat=true
when: not on_host
become: no