From f72fcd454b671b92b84a798be62d96379a2399d7 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 3 Aug 2024 22:11:58 +0200 Subject: [PATCH] Added Caddy setup (template is on the todo), change prompts to secrets file and added support for dnf package manager (Fedora,...) --- README.md | 3 ++ deploy.yml | 22 +++------------ roles/caddy_setup/tasks/main.yml | 13 +++++++++ roles/caddy_setup/templates/Caddyfile.j2 | 10 +++++++ roles/install_packages/tasks/main.yml | 36 +++++++++++++++++++++--- secrets.yml | 4 +++ 6 files changed, 66 insertions(+), 22 deletions(-) create mode 100644 roles/caddy_setup/tasks/main.yml create mode 100644 roles/caddy_setup/templates/Caddyfile.j2 create mode 100644 secrets.yml diff --git a/README.md b/README.md index e69de29..1b9992b 100755 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +1. Pas het bestand secrets.yml aan met de correcte info +2. Versleutel het bestand met Ansible Vault: `ansible-vault encrypt secrets.yml` +3. voer het playbook uit: `ansible-playbook deploy.yml --ask-vault-pas` \ No newline at end of file diff --git a/deploy.yml b/deploy.yml index 9596295..ed55427 100755 --- a/deploy.yml +++ b/deploy.yml @@ -1,15 +1,8 @@ --- - name: Deploy Stamhoofd application hosts: development - vars_prompt: - - name: mysql_root_password - prompt: "Enter MySQL root password" - private: yes - - name: mysql_user_password - prompt: "Enter MySQL user password" - private: yes - - name: coredns_domain - prompt: "Kies het hoofddomein waar Stamhoofd op moet draaien" + vars_files: + - secrets.yml roles: - install_packages - clone @@ -18,15 +11,8 @@ - name: Setup MySQL and deploy to production hosts: production - vars_prompt: - - name: mysql_root_password - prompt: "Enter MySQL root password" - private: yes - - name: mysql_user_password - prompt: "Enter MySQL user password" - private: yes - - name: coredns_domain - prompt: "Kies het hoofddomein waar Stamhoofd op moet draaien" + vars_files: + - secrets.yaml roles: - install_packages - mysql_setup diff --git a/roles/caddy_setup/tasks/main.yml b/roles/caddy_setup/tasks/main.yml new file mode 100644 index 0000000..d0fa389 --- /dev/null +++ b/roles/caddy_setup/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Configure Caddy + template: + src: Caddyfile.j2 + dest: /etc/caddy/Caddyfile + notify: + - Restart Caddy + +- name: Ensure Caddy is running + service: + name: caddy + state: started + enabled: yes \ No newline at end of file diff --git a/roles/caddy_setup/templates/Caddyfile.j2 b/roles/caddy_setup/templates/Caddyfile.j2 new file mode 100644 index 0000000..69046c0 --- /dev/null +++ b/roles/caddy_setup/templates/Caddyfile.j2 @@ -0,0 +1,10 @@ +#moet nog aangepast worden :-) +{{ caddy_domain }} { + reverse_proxy localhost:8080 + log { + output file /var/log/caddy/access.log + } + errors { + 404 /404.html + } +} \ No newline at end of file diff --git a/roles/install_packages/tasks/main.yml b/roles/install_packages/tasks/main.yml index 143f245..f09b25d 100755 --- a/roles/install_packages/tasks/main.yml +++ b/roles/install_packages/tasks/main.yml @@ -1,23 +1,51 @@ --- -- name: Install MySQL +- name: Install MySQL on Debian-based systems apt: name: mysql-server state: present + when: ansible_facts['os_family'] == "Debian" -- name: Install Git +- name: Install MySQL on RedHat-based systems + dnf: + name: mysql-server + state: present + when: ansible_facts['os_family'] == "RedHat" + +- name: Install Git on Debian-based systems apt: name: git state: present + when: ansible_facts['os_family'] == "Debian" -- name: Install Caddy +- name: Install Git on RedHat-based systems + dnf: + name: git + state: present + when: ansible_facts['os_family'] == "RedHat" + +- name: Install Caddy on Debian-based systems apt: name: caddy state: present + when: ansible_facts['os_family'] == "Debian" -- name: Install CoreDNS +- name: Install Caddy on RedHat-based systems + dnf: + name: caddy + state: present + when: ansible_facts['os_family'] == "RedHat" + +- name: Install CoreDNS on Debian-based systems apt: name: coredns state: present + when: ansible_facts['os_family'] == "Debian" + +- name: Install CoreDNS on RedHat-based systems + dnf: + name: coredns + state: present + when: ansible_facts['os_family'] == "RedHat" - name: Install NVM shell: | diff --git a/secrets.yml b/secrets.yml new file mode 100644 index 0000000..398c055 --- /dev/null +++ b/secrets.yml @@ -0,0 +1,4 @@ +mysql_root_password: mysql_root_password +mysql_user_password: mysql_user_password +coredns_domain: your_coredns_domain +caddy_domain: your_caddy_domain \ No newline at end of file