playbook/solanum.yml

100 lines
2.4 KiB
YAML

- hosts: testnet
tasks:
- name: install dependencies for alpine
package:
name: sudo,musl-dev,libressl-dev,make,automake,gcc,curl,git,byacc,flex,libtool,sqlite-dev,autoconf,util-linux
state: present
when: ansible_distribution == 'Alpine'
- name: install dependencies for debian
package:
name: sudo,buildessential,autotools-dev,automake,cmake,make,libtool,byacc,flex,openssl-dev,sqlite3
state: present
when: ansible_distribution == 'Debian'
- name: create ircd user
user:
name: ircd
- name: download solanum
git:
repo: 'https://github.com/vulpineawoo/solanum'
dest: /home/ircd/solanum
become: yes
become_user: ircd
- name: check if autogen needed
stat:
path: /home/ircd/solanum/configure
register: alreadyautogen
- name: autogen
command: ./autogen.sh
args:
chdir: /home/ircd/solanum
become: yes
become_user: ircd
when: not alreadyautogen.stat.exists
- name: configure
command: ./configure
args:
chdir: /home/ircd/solanum
become: yes
become_user: ircd
when: not alreadyautogen.stat.exists
- name: make
make:
chdir: /home/ircd/solanum
become: yes
become_user: ircd
- name: make install
make:
chdir: /home/ircd/solanum
target: install
become: yes
become_user: ircd
- name: check for ssl cert
stat:
path: /home/ircd/ircd/etc/ssl.pem
register: ssl_exists
- name: get ssl fingerprint
command: /home/ircd/ircd/bin/solanum-mkfingerprint sha512 /home/ircd/ircd/etc/ssl.pem
register: ssl_fingerprint
when: ssl_exists.stat.exists
- name: create ircd.conf
template:
src: ircd.j2
dest: /home/ircd/ircd/etc/ircd.conf
- name: create ircd.motd
template:
src: motd.j2
dest: /home/ircd/ircd/etc/ircd.motd
- name: create openrc service
template:
src: openrc.j2
dest: /etc/init.d/solanum
mode: 0755
when: ansible_distribution == 'Alpine'
- name: create systemd service
template:
src: systemd.j2
dest: /etc/systemd/system/solnum.service
mode: 0755
when: ansible_distribution == 'Debian'
- name: enable service
service:
name: solanum
state: reloaded
enabled: yes