first commit

This commit is contained in:
phil 2023-08-16 20:41:30 +02:00
commit 1dff8396d7
12 changed files with 284 additions and 0 deletions

20
tasks/database.yml Normal file
View file

@ -0,0 +1,20 @@
---
- name: "Database | Crate database"
community.mysql.mysql_db:
name: "{{ dmarcsrg_database }}"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
register: mariadb_created
delegate_to: "{{ database_host }}"
- name: "Database | Create database user"
community.mysql.mysql_user:
name: "{{ dmarcsrg_database }}"
password: "{{ dmarcsrg_database_password }}"
priv: "{{ dmarcsrg_database }}.*:ALL"
host: "{{ inventory_hostname }}"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
delegate_to: "{{ database_host }}"

56
tasks/install.yml Normal file
View file

@ -0,0 +1,56 @@
---
- name: "Install | Check for latest version"
ansible.builtin.shell:
cmd: curl -sL "{{ dmarcsrg_github_api_url }}" | jq -r ".tag_name"
changed_when: false
register: latest_version
- name: "Install | Get download URL"
ansible.builtin.shell:
cmd: curl -sL "{{ dmarcsrg_github_api_url }}" | jq -r ".tarball_url"
changed_when: false
register: download_url
- name: "Install | Create directories"
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0755"
loop:
- "{{ dmarcsrg_home }}"
- "{{ dmarcsrg_home }}/{{ latest_version.stdout }}"
- "{{ overrides_path }}"
- name: "Install | Download install files"
ansible.builtin.unarchive:
src: "{{ download_url.stdout }}"
dest: "{{ dmarcsrg_home }}/{{ latest_version.stdout }}"
remote_src: true
extra_opts:
- "--strip-components=1"
- name: "Install | Copy configuration file"
ansible.builtin.template:
src: conf.php.j2
dest: "{{ overrides_path }}/conf.php"
mode: "0640"
owner: "{{ dmarcsrg_user }}"
group: "{{ dmarcsrg_user }}"
- name: "Install | Link data"
ansible.builtin.file:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
state: link
loop:
- src: "{{ dmarcsrg_home }}/{{ latest_version.stdout }}"
dest: "{{ dmarcsrg_home }}/current"
- src: "{{ overrides_path }}/conf.php"
dest: "{{ dmarcsrg_home }}/{{ latest_version.stdout }}/conf.php"
- name: "Install | Initiate database"
ansible.builtin.command:
cmd: php utils/database_admin.php init
chdir: "{{ dmarcsrg_home }}/current"
become: true
become_user: "{{ dmarcsrg_user }}"

16
tasks/main.yml Normal file
View file

@ -0,0 +1,16 @@
---
- name: Create user
ansible.builtin.import_tasks: user.yml
tags: user
- name: Create database
ansible.builtin.import_tasks: database.yml
tags: database
- name: Install dmarc-srg
ansible.builtin.import_tasks: install.yml
tags: install
- name: Configure PHP-FPM
ansible.builtin.import_tasks: phpfpm.yml
tags: phpfpm

47
tasks/phpfpm.yml Normal file
View file

@ -0,0 +1,47 @@
---
- name: "PHPFPM | Create logfile"
ansible.builtin.file:
path: "{{ php_fpm_log_dir }}/{{ dmarcsrg_user }}.log"
state: touch
mode: "0644"
owner: "{{ dmarcsrg_user }}"
group: "{{ dmarcsrg_user }}"
- name: "PHPFPM | Copy configuration"
ansible.builtin.template:
src: fpmpool.j2
dest: "/etc/php/{{ php_version.stdout }}/fpm/pool.d/{{ dmarcsrg_user }}.cfg"
mode: "0644"
notify:
- stop php-fpm-socket
- stop php-fpm-service
- start php-fpm-socket
- name: "PHPFPM | Create systemd override directory"
ansible.builtin.file:
path: "/etc/systemd/system/php-fpm@{{ dmarcsrg_user }}.service.d"
state: directory
mode: "0755"
- name: "PHPFPM | Copy systemd override configuration"
ansible.builtin.template:
src: systemd/override.conf.j2
dest: "/etc/systemd/system/php-fpm@{{ dmarcsrg_user }}.service.d/override.conf"
mode: "0644"
notify:
- stop php-fpm-socket
- stop php-fpm-service
- start php-fpm-socket
- name: "PHPFPM | Enable systemd socket"
ansible.builtin.systemd:
name: "php-fpm@{{ dmarcsrg_user }}.socket"
enabled: true
state: started
daemon_reload: true
- name: "PHPFPM | Enable systemd service"
ansible.builtin.systemd:
name: "php-fpm@{{ dmarcsrg_user }}.service"
enabled: true
daemon-reload: true

14
tasks/user.yml Normal file
View file

@ -0,0 +1,14 @@
---
- name: "User | Create system user"
ansible.builtin.user:
name: "{{ dmarcsrg_user }}"
shell: /bin/false
create_home: false
password_lock: true
system: true
- name: "User | Add www-data to user group"
ansible.builtin.user:
name: www-data
groups: "{{ dmarcsrg }}"
append: true