diff --git a/inventory/local b/inventory/local index ff50ec0c279ec40478280255f7f0e0fd505ef45a..d33c048c4f9d912bb9edac3589a81fa7a4bd285a 100644 --- a/inventory/local +++ b/inventory/local @@ -6,6 +6,7 @@ local ansible_connection=local # Hosts that receive the mdproxy role [mdproxy] +local # Hosts that receive the GeoDNS role [geodns] diff --git a/playbook.yml b/playbook.yml index f89049221b0d3a9fddc8cc04308004fde36927c9..fa49cdb39e4f8b42d4fd540b6944c1f4067028bc 100644 --- a/playbook.yml +++ b/playbook.yml @@ -8,6 +8,7 @@ hosts: geodns gather_facts: false roles: + - {role: local, tags: ['local']} - {role: geodns, tags: ['geodns']} - name: MDSigner @@ -21,5 +22,6 @@ hosts: mdproxy gather_facts: false roles: + - {role: local, tags: ['local']} - {role: apache, tags: ['apache']} - {role: mdproxy, tags: ['mdproxy']} diff --git a/roles/geodns/defaults/main.yml b/roles/geodns/defaults/main.yml index 291d8ef061e09e302d734e61d47e2f713e207c16..18ad3dd6cc5f62101d0c1a2dd35bcff3619117d2 100644 --- a/roles/geodns/defaults/main.yml +++ b/roles/geodns/defaults/main.yml @@ -8,7 +8,3 @@ geodns_version: v3.2.0 geodns_config: "{{ geodns_dir}}/config" geolite_dir: "{{ geodns_dir }}/GeoLite2DB" - -mdxsaas_repo: https://gitlab.geant.org/TI_Incubator/mdx-saas-config.git -mdxsaas_dir: /opt/mdx-saas -mdxsaas_version: main diff --git a/roles/geodns/tasks/main.yml b/roles/geodns/tasks/main.yml index 83b8b9f9c99175f165bd9b95d1ba0158d0800695..6e09285afa2ed05b1fea4370faaad9de9323f17f 100644 --- a/roles/geodns/tasks/main.yml +++ b/roles/geodns/tasks/main.yml @@ -3,7 +3,6 @@ apt: state: present name: - - ansible - netcat-openbsd - name: Install Ansible community.general @@ -101,15 +100,3 @@ - geodns-update.timer notify: - "enable geodns job" - -- name: Clone MDX-SAAS-config repository - ansible.builtin.git: - repo: "{{ mdxsaas_repo }}" - dest: "{{ mdxsaas_dir }}" - version: "{{ mdxsaas_version }}" - register: mdxsaas_git - -- name: Write MDX-SAAS repo version - ansible.builtin.shell: - cmd: "git rev-parse HEAD > {{ geodns_config }}/revision" - chdir: "{{ mdxsaas_dir }}" diff --git a/roles/geodns/templates/geodns-update.service.j2 b/roles/geodns/templates/geodns-update.service.j2 index 17b702cf2daac8a8502b85c56410116cb0c9ac2d..b548274b40ce065c9bb0207ca78f45358f213757 100644 --- a/roles/geodns/templates/geodns-update.service.j2 +++ b/roles/geodns/templates/geodns-update.service.j2 @@ -5,7 +5,7 @@ Description=GeoDNS update Type=oneshot WorkingDirectory={{ mdxsaas_dir }} ExecStart=git pull -ExecStart=ansible-playbook playbook.yml -i inventory/local --tags geodns --limit local +ExecStart=ansible-playbook playbook.yml -i inventory/local --tags local,geodns --limit local ExecStartPost=/bin/systemctl restart geodns [Install] diff --git a/roles/geodns/templates/geodns-update.timer.j2 b/roles/geodns/templates/geodns-update.timer.j2 index 0a4e475fd37b1b243d872e8c2b86fa0083709bd7..0241baefe95b82eb0ecb99f096996201c7b6ae8c 100644 --- a/roles/geodns/templates/geodns-update.timer.j2 +++ b/roles/geodns/templates/geodns-update.timer.j2 @@ -2,7 +2,7 @@ Description=Run GeoDNS update [Timer] -OnCalendar=*-*-* *:0/5:00 +OnCalendar=*-*-* *:02:00 Unit=geodns-update.service [Install] diff --git a/roles/local/defaults/main.yml b/roles/local/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..8b71038d5e3be83375b23fe73e75a38f8699ba7b --- /dev/null +++ b/roles/local/defaults/main.yml @@ -0,0 +1,5 @@ +--- + +mdxsaas_repo: https://gitlab.geant.org/TI_Incubator/mdx-saas-config.git +mdxsaas_dir: /opt/mdx-saas +mdxsaas_version: main diff --git a/roles/local/tasks/main.yml b/roles/local/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..5791679057b8861ad02c13f04142e620f52471da --- /dev/null +++ b/roles/local/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: Install packages + apt: + state: present + name: + - ansible + +- name: Clone MDX-SAAS-config repository + ansible.builtin.git: + repo: "{{ mdxsaas_repo }}" + dest: "{{ mdxsaas_dir }}" + version: "{{ mdxsaas_version }}" + register: mdxsaas_git + +- name: Write MDX-SAAS repo version + ansible.builtin.shell: + cmd: "git rev-parse HEAD > {{ geodns_config }}/revision" + chdir: "{{ mdxsaas_dir }}" diff --git a/roles/mdproxy/tasks/main.yml b/roles/mdproxy/tasks/main.yml index 92fd204b78f68ca7da6facce440b8b826078d03a..fa1e33c4f9ad4743f89bb99c857ed5a21d4ce4ad 100644 --- a/roles/mdproxy/tasks/main.yml +++ b/roles/mdproxy/tasks/main.yml @@ -13,7 +13,11 @@ - name: Copy mdproxy service files ansible.builtin.template: - src: "mdproxy.service.j2" - dest: "/etc/systemd/system/mdproxy.service" + src: "{{ item }}.j2" + dest: "/etc/systemd/system/{{ item }}" + with_items: + - mdproxy.service + - mdproxy-update.service + - mdproxy-update.timer notify: - "enable mdproxy job" diff --git a/roles/mdproxy/templates/mdproxy-update.service.j2 b/roles/mdproxy/templates/mdproxy-update.service.j2 new file mode 100644 index 0000000000000000000000000000000000000000..bcdce656326ee9cee7aaf0e57074a25e650ea7d8 --- /dev/null +++ b/roles/mdproxy/templates/mdproxy-update.service.j2 @@ -0,0 +1,12 @@ +[Unit] +Description=mdproxy update + +[Service] +Type=oneshot +WorkingDirectory={{ mdxsaas_dir }} +ExecStart=git pull +ExecStart=ansible-playbook playbook.yml -i inventory/local --tags local,mdproxy --limit local +ExecStartPost=/bin/systemctl restart mdproxy + +[Install] +WantedBy=multi-user.target diff --git a/roles/mdproxy/templates/mdproxy-update.timer.j2 b/roles/mdproxy/templates/mdproxy-update.timer.j2 new file mode 100644 index 0000000000000000000000000000000000000000..9806d2c10f5cce5a51a21ad07af821a3b8a306d3 --- /dev/null +++ b/roles/mdproxy/templates/mdproxy-update.timer.j2 @@ -0,0 +1,9 @@ +[Unit] +Description=Run mdproxy update + +[Timer] +OnCalendar=*-*-* *:04:00 +Unit=mdproxy-update.service + +[Install] +WantedBy=timers.target