106 lines
2.5 KiB
YAML
106 lines
2.5 KiB
YAML
---
|
|
- name: Deploy UnrealIRCd
|
|
hosts: ircd_servers
|
|
become: true
|
|
gather_facts: true
|
|
|
|
vars:
|
|
ircd_user: ircd
|
|
install_dir: /opt/ircd
|
|
|
|
tasks:
|
|
- name: Install required packages
|
|
package:
|
|
name:
|
|
- git
|
|
- make
|
|
- gcc
|
|
- curl
|
|
state: present
|
|
|
|
- name: Check if Docker is installed
|
|
stat:
|
|
path: /usr/bin/docker
|
|
register: docker_check
|
|
|
|
- name: Install Docker using convenience script
|
|
block:
|
|
- name: Download Docker installation script
|
|
get_url:
|
|
url: https://get.docker.com
|
|
dest: /tmp/get-docker.sh
|
|
mode: '0755'
|
|
force: yes
|
|
|
|
- name: Execute Docker installation script
|
|
command: /tmp/get-docker.sh
|
|
args:
|
|
creates: /usr/bin/docker
|
|
|
|
- name: Clean up installation script
|
|
file:
|
|
path: /tmp/get-docker.sh
|
|
state: absent
|
|
when: not docker_check.stat.exists
|
|
|
|
- name: Create ircd user
|
|
user:
|
|
name: "{{ ircd_user }}"
|
|
groups: docker
|
|
append: yes
|
|
system: yes
|
|
|
|
- name: Enable and start Docker service
|
|
systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: yes
|
|
|
|
- name: Check if repository exists
|
|
stat:
|
|
path: "{{ install_dir }}/.git"
|
|
register: repo_check
|
|
|
|
- name: Clone UnrealIRCd repository
|
|
git:
|
|
repo: 'https://git.supernets.org/supernets/ircd'
|
|
dest: "{{ install_dir }}"
|
|
force: true
|
|
version: master
|
|
when: not repo_check.stat.exists
|
|
|
|
- name: Update existing repository
|
|
command:
|
|
cmd: git pull
|
|
chdir: "{{ install_dir }}"
|
|
when: repo_check.stat.exists
|
|
register: git_pull
|
|
changed_when: git_pull.stdout != 'Already up to date.'
|
|
|
|
- name: Set ircd ownership recursively
|
|
file:
|
|
path: "{{ install_dir }}"
|
|
state: directory
|
|
owner: "{{ ircd_user }}"
|
|
group: "{{ ircd_user }}"
|
|
recurse: yes
|
|
|
|
- name: Set execute permission on setup.sh
|
|
file:
|
|
path: "{{ install_dir }}/setup.sh"
|
|
mode: '0755'
|
|
|
|
- name: Run setup script
|
|
command:
|
|
cmd: ./setup.sh
|
|
chdir: "{{ install_dir }}"
|
|
become_user: "{{ ircd_user }}"
|
|
register: setup_result
|
|
changed_when: false
|
|
failed_when: setup_result.rc != 0
|
|
ignore_errors: true
|
|
|
|
- name: Show setup output
|
|
debug:
|
|
var: setup_result.stdout_lines
|
|
when: setup_result is defined |