unrealircd/ansible/deploy_ircd.yml

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