From 98a8d29811c03195fb603bff87a5681c596590fb Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Mon, 25 Mar 2019 21:10:07 +0000 Subject: [PATCH] [repospanner] Hack at a playbook to make it work like CentOS one and our existing structures. Look on my works, ye Mighty, and despair! Nothing beside remains. Round the decay Of that colossal wreck, boundless and bare The lone and level sands stretch far away. Signed-off-by: Stephen Smoogen --- playbooks/groups/repospanner.yml | 43 ++++++++++++++++ roles/repospanner/server/tasks/main.yml | 50 +++++++++++-------- .../server/templates/repoSpanner.yml | 4 +- 3 files changed, 75 insertions(+), 22 deletions(-) diff --git a/playbooks/groups/repospanner.yml b/playbooks/groups/repospanner.yml index 3ce222cb3f..0c2c120b1a 100644 --- a/playbooks/groups/repospanner.yml +++ b/playbooks/groups/repospanner.yml @@ -25,6 +25,49 @@ node: repospanner01, region: ansible, spawn_repospanner_node: true, + rpc_port: 8442, + http_port: 8443, + when: inventory_hostname == 'repospanner01.phx2.fedoraproject.org' + } + - { role: repospanner/server, + node: repospanner02, + region: ansible, + spawn_repospanner_node: true, + rpc_port: 8442, + http_port: 8443, + when: inventory_hostname == 'repospanner-cc-rdu01.phx2.fedoraproject.org' + } + - { role: repospanner/server, + node: repospanner03, + region: ansible, + spawn_repospanner_node: true, + rpc_port: 8442, + http_port: 8443, + when: inventory_hostname == 'repospanner-osuosl01.phx2.fedoraproject.org' + } + + - { role: repospanner/server, + node: fedora01, + region: rpms, + spawn_repospanner_node: true, + rpc_port: 8444, + http_port: 8445, + when: inventory_hostname == 'repospanner-cc-rdu01.phx2.fedoraproject.org' + } + - { role: repospanner/server, + node: fedora02, + region: rpms, + spawn_repospanner_node: true, + rpc_port: 8444, + http_port: 8445, + when: inventory_hostname == 'repospanner-osuosl01.phx2.fedoraproject.org' + } + - { role: repospanner/server, + node: fedora03, + region: rpms, + spawn_repospanner_node: true, + rpc_port: 8444, + http_port: 8445, when: inventory_hostname == 'repospanner01.phx2.fedoraproject.org' } diff --git a/roles/repospanner/server/tasks/main.yml b/roles/repospanner/server/tasks/main.yml index e5bfe0c73d..395c02b276 100644 --- a/roles/repospanner/server/tasks/main.yml +++ b/roles/repospanner/server/tasks/main.yml @@ -9,6 +9,18 @@ - repospanner/server - packages +- name: ensure needed directories + file: + path: "{{ item }}" + state: directory + owner: root + group: root + mode: 0755 + with_items: + - /etc/repospanner/ + - /etc/pki/repospanner/ + - /var/lib/repospanner/ + - name: Create group group: name: repoSpanner @@ -27,23 +39,11 @@ - repospanner/server - config -- name: Create directory - file: - path: /var/lib/repospanner - state: directory - owner: repoSpanner - group: repoSpanner - mode: 0755 - tags: - - repospanner/server - - config - - name: Deploy configuration template: src=repoSpanner.yml dest=/etc/repospanner/config.yml owner=repoSpanner group=repoSpanner mode=0600 - notify: - - restart repoSpanner + register: repospanner_refresh tags: - repospanner/server - config @@ -59,17 +59,15 @@ dest: node.crt - src: "{{node}}.{{region}}.key" dest: node.key - notify: - - restart repoSpanner + register: repospanner_refresh tags: - repospanner/server - config - name: Deploy unit file template: src=repoSpanner.service - dest=/etc/systemd/system/repoSpanner@.service - notify: - - restart repoSpanner + dest=/etc/systemd/system/repoSpanner@{{ region }}.service + register: repospanner_systemd tags: - repospanner/server - config @@ -86,7 +84,7 @@ - config - name: Join node - command: repospanner --config /etc/repospanner/config.yml serve --joinnode https://{{ join_repospanner_node }}:8444 + command: repospanner --config /etc/repospanner/config.yml serve --joinnode https://{{ join_repospanner_node }}:{{ rpc_port }} args: creates: /var/lib/repospanner/state/state.json become: yes @@ -97,7 +95,19 @@ - config - name: Start and enable - service: name=repoSpanner@config state=started enabled=yes + service: name=repoSpanner@{{ region }} state=started enabled=yes tags: - repospanner/server - config + +- name: Reload systemd when needed + shell: /usr/bin/systemctl daemon-reload + when: repospanner_systemd is changed + tags: + - systemd + +- name: Restart service when needed + service: + name: "repospanner@{{ region }}" + state: restarted + when: repospanner_refresh is changed diff --git a/roles/repospanner/server/templates/repoSpanner.yml b/roles/repospanner/server/templates/repoSpanner.yml index a7333e4b48..bb01307f2b 100644 --- a/roles/repospanner/server/templates/repoSpanner.yml +++ b/roles/repospanner/server/templates/repoSpanner.yml @@ -6,8 +6,8 @@ storage: clustered: true directory: /var/lib/repospanner/gitstore listen: - rpc: 0.0.0.0:8444 - http: 0.0.0.0:8443 + rpc: 0.0.0.0:{{ rpc_port }} + http: 0.0.0.0:{{ http_port }} certificates: ca: /etc/repospanner/ca.crt client: