bsdnix/roles/chat/tasks/main.yaml

71 lines
2.0 KiB
YAML

---
# we do NOT use:
# git clone https://github.com/quackduck/devzat
# but our own fork where we patched the torlist stuff away.
# see: https://github.com/quackduck/devzat/issues/246
- name: build devzat
shell: |
cd /tmp
git clone https://github.com/tlinden/devzat
cd /tmp/devzat
go build
args:
creates: "/tmp/.ansible.devzatbuild"
- name: create services template dir
file:
path: "/usr/local/bastille/templates/services/{{ role_name }}"
state: directory
recurse: yes
- name: copy template config files
template:
src: Bastillefile.j2
dest: "/usr/local/bastille/templates/services/{{ role_name }}/Bastillefile"
- name: create config paths
file:
path: "/usr/local/bastille/templates/services/{{ role_name }}/{{ item }}/"
state: directory
recurse: yes
loop:
- usr/local/etc
- usr/local/etc/rc.d
- usr/local/sbin
- name: copy devzat binary
shell: |
install -m 755 /tmp/devzat/devzat /usr/local/bastille/templates/services/{{ role_name }}/usr/local/sbin/devzat
touch /tmp/.ansible.devzat
args:
creates: "/tmp/.ansible.devzat"
- name: copy devzat config file
copy:
src: devzat.yml
dest: "/usr/local/bastille/templates/services/{{ role_name }}/usr/local/etc/"
- name: copy devzat rc file
copy:
src: devzat
dest: "/usr/local/bastille/templates/services/{{ role_name }}/usr/local/etc/rc.d/"
mode: '0755'
- name: create jail
shell: "bastille create -B {{ role_name }} {{ release }} {{ chatip.stdout }}/64 bridge0"
args:
creates: /usr/local/bastille/jails/{{ role_name }}
- name: start jail
shell: bastille start {{ role_name }} || true
- name: template jail
shell: |
bastille template {{ role_name }} services/{{ role_name }}
touch /tmp/.ansible.devzattemplate
args:
# FIXME: might make it impossible to update, on the other hand w/o
# it this command fails with "devzat binary busy" when the jail is
# already running, since go binaries do not fork.
creates: /tmp/.ansible.devzattemplate