chore: clean up ansible structure
This commit is contained in:
@@ -53,4 +53,4 @@ jobs:
|
||||
ansible-playbook ansible/playbooks/deploy-and-restart-modified-services.yml \
|
||||
-i ansible/hosts.yml \
|
||||
-e "changed_services_raw=$CHANGED_SVC" \
|
||||
-e "agebd_env=$AGEBD_ENV"#
|
||||
-e "agebd_env=$AGEBD_ENV"
|
||||
|
||||
@@ -1,37 +1,43 @@
|
||||
# TODO: Create venv and install ansible? That way not dependent on ansible
|
||||
# being installed on machine.
|
||||
---
|
||||
- name: Add a new service
|
||||
hosts: sls-vserv-bd-hla01-dev
|
||||
connection: local
|
||||
gather_facts: true # Gather once here, available to all included tasks!
|
||||
|
||||
# - name: Install Master IOC
|
||||
# vars:
|
||||
# preferred_service_name_lower: master
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_playbook: ../plays/ioc/ioc-install.yml
|
||||
tasks:
|
||||
# - name: Install Master IOC
|
||||
# vars:
|
||||
# preferred_service_name_lower: master
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_tasks: ../tasks/ioc/ioc-install.yml
|
||||
|
||||
# - name: Restart Master IOC
|
||||
# vars:
|
||||
# preferred_service_name_lower: master
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_playbook: ../plays/ioc/ioc-restart.yml
|
||||
# - name: Restart Master IOC
|
||||
# vars:
|
||||
# preferred_service_name_lower: master
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_tasks: ../tasks/ioc/ioc-restart.yml
|
||||
|
||||
- name: Deploy and Restart Master Service
|
||||
vars:
|
||||
preferred_service_name_lower: master
|
||||
branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
import_playbook: ../plays/service/service-deploy-and-restart.yml
|
||||
- name: Deploy and Restart Master Service
|
||||
vars:
|
||||
preferred_service_name_lower: master
|
||||
branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
import_tasks: ../tasks/service/service-deploy-and-restart.yml
|
||||
|
||||
# TODO: ioc_port
|
||||
# - name: Install New IOC
|
||||
# vars:
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_playbook: ../plays/ioc/ioc-install.yml
|
||||
# TODO: ioc_port
|
||||
# - name: Install New IOC
|
||||
# vars:
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_tasks: ../tasks/ioc/ioc-install.yml
|
||||
|
||||
# TODO: ioc_port
|
||||
# - name: Start New IOC
|
||||
# vars:
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_playbook: ../plays/ioc/ioc-start.yml
|
||||
# TODO: ioc_port
|
||||
# - name: Start New IOC
|
||||
# vars:
|
||||
# branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
# import_tasks: ../tasks/ioc/ioc-start.yml
|
||||
|
||||
- name: Deploy and Restart New Service
|
||||
vars:
|
||||
branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
import_playbook: ../plays/service/service-deploy-and-restart.yml
|
||||
- name: Deploy and Restart New Service
|
||||
vars:
|
||||
branch_name: "feature/add-service-{{ service_name_lower }}"
|
||||
import_tasks: ../tasks/service/service-deploy-and-restart.yml
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
---
|
||||
- name: Deploy and Restart Modified Services
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-hla01-dev
|
||||
@@ -14,9 +15,9 @@
|
||||
ansible.builtin.meta: end_play
|
||||
when: changed_services_raw | trim == ""
|
||||
|
||||
# Main Loop: Loop through the list of modified service names
|
||||
# Main Loop: loop through the list of modified service names
|
||||
- name: Deploy and Restart Modified Services
|
||||
include_tasks: ../plays/service/service-deploy-and-restart.yml
|
||||
include_tasks: ../tasks/service/service-deploy-and-restart.yml
|
||||
loop: "{{ changed_services_raw.split() }}"
|
||||
loop_control:
|
||||
loop_var: service_name_lower
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Install an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-01-dev
|
||||
gather_facts: false
|
||||
|
||||
tasks:
|
||||
- name: Run ioc install tasks
|
||||
ansible.builtin.include_tasks: ../tasks/ioc/ioc-install.yml
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Restart an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-01-dev
|
||||
gather_facts: false
|
||||
|
||||
tasks:
|
||||
- name: Run ioc restart tasks
|
||||
ansible.builtin.include_tasks: ../tasks/ioc/ioc-restart.yml
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Start an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-01-dev
|
||||
gather_facts: false
|
||||
|
||||
tasks:
|
||||
- name: Run ioc start tasks
|
||||
ansible.builtin.include_tasks: ../tasks/ioc/ioc-start.yml
|
||||
@@ -1,79 +0,0 @@
|
||||
- name: Install an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-lc
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
workspace_dir: "/tmp/hla_framework_bd"
|
||||
|
||||
tasks:
|
||||
- name: Clone this repository
|
||||
ansible.builtin.git:
|
||||
repo: "git@gitea.psi.ch:sls/hla_framework_bd.git"
|
||||
dest: "{{ workspace_dir }}"
|
||||
accept_hostkey: true
|
||||
version: "{{ branch_name }}"
|
||||
force: true
|
||||
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Establish environment naming conventions"
|
||||
ansible.builtin.set_fact:
|
||||
service_name_upper: "{{ target_service_name_lower | upper }}"
|
||||
# Set suffix to "-DEV" if dev, otherwise empty ""
|
||||
env_suffix_upper: "{{ '-DEV' if agebd_env == 'dev' else '' }}"
|
||||
# Set suffix to "-dev" if dev, otherwise empty ""
|
||||
env_suffix_lower: "{{ '-dev' if agebd_env == 'dev' else '' }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define file paths"
|
||||
ansible.builtin.set_fact:
|
||||
ioc_base_dir: "{{ workspace_dir }}/services/{{ target_service_name_lower }}/current/ioc"
|
||||
orig_subs_name: "AGEBD-CPCL-{{ service_name_upper }}_main.subs"
|
||||
target_subs_name: "AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}_main.subs"
|
||||
orig_params_name: "AGEBD-CPCL-{{ service_name_upper }}_parameters.yaml"
|
||||
target_params_name: "AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}_parameters.yaml"
|
||||
|
||||
# Rename the subs file if we are in DEV
|
||||
- name: "[{{ target_service_name_lower }}] Rename substitution file for environment"
|
||||
ansible.builtin.command:
|
||||
cmd: "mv {{ ioc_base_dir }}/{{ orig_subs_name }} {{ ioc_base_dir }}/{{ target_subs_name }}"
|
||||
removes: "{{ ioc_base_dir }}/{{ orig_subs_name }}" # Only runs if the original file exists
|
||||
|
||||
# Rename the paramters file if we are in DEV
|
||||
- name: "[{{ target_service_name_lower }}] Rename parameters file for environment"
|
||||
ansible.builtin.command:
|
||||
cmd: "mv {{ ioc_base_dir }}/{{ orig_params_name }} {{ ioc_base_dir }}/{{ target_params_name }}"
|
||||
removes: "{{ ioc_base_dir }}/{{ orig_params_name }}" # Only runs if the original file exists
|
||||
|
||||
# Replace {{ agebd_env }} inside the newly renamed subs file
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment tokens inside subs file"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ ioc_base_dir }}/{{ target_subs_name }}"
|
||||
regexp: '\{\{\s*agebd_env\s*\}\}'
|
||||
replace: "{{ env_suffix_upper }}"
|
||||
|
||||
# Replace {{ agebd_env }} and {{ ioc_port }} inside the newly renamed params file
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment token inside params file"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ ioc_base_dir }}/{{ target_params_name }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
replace: "{{ item.replace | string }}"
|
||||
with_items:
|
||||
- { regexp: '\{\{\s*agebd_env\s*\}\}', replace: "{{ env_suffix_lower }}" }
|
||||
- { regexp: '\{\{\s*ioc_port\s*\}\}', replace: "{{ ioc_port }}" }
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Run ioc install"
|
||||
ansible.builtin.shell:
|
||||
cmd: "ioc install -V --facility sls --ioc AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }} --clean"
|
||||
chdir: "{{ ioc_base_dir }}"
|
||||
changed_when: true
|
||||
register: ioc_install_result
|
||||
# Force a pipeline failure if the command output contains error keywords
|
||||
# (ioc install ... returns exit code 0 even on failure...)
|
||||
failed_when: >
|
||||
ioc_install_result.rc != 0 or
|
||||
"[error]" in ioc_install_result.stderr or
|
||||
"Unable to write" in ioc_install_result.stderr
|
||||
@@ -1,37 +0,0 @@
|
||||
- name: Restart an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-lc
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
workspace_dir: "/tmp/hla_framework_bd"
|
||||
|
||||
tasks:
|
||||
- name: Clone this repository
|
||||
ansible.builtin.git:
|
||||
repo: "git@gitea.psi.ch:sls/hla_framework_bd.git"
|
||||
dest: "{{ workspace_dir }}"
|
||||
accept_hostkey: true
|
||||
version: "{{ branch_name }}"
|
||||
force: true
|
||||
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Establish environment naming conventions"
|
||||
ansible.builtin.set_fact:
|
||||
service_name_upper: "{{ target_service_name_lower | upper }}"
|
||||
# Set suffix to "-DEV" if dev, otherwise empty ""
|
||||
env_suffix_upper: "{{ '-DEV' if agebd_env == 'dev' else '' }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define file paths"
|
||||
ansible.builtin.set_fact:
|
||||
ioc_base_dir: "{{ workspace_dir }}/services/{{ target_service_name_lower }}/current/ioc"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Restart IOC"
|
||||
ansible.builtin.shell:
|
||||
cmd: "ioc restart AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}"
|
||||
chdir: "{{ ioc_base_dir }}"
|
||||
changed_when: true
|
||||
@@ -1,15 +0,0 @@
|
||||
- name: Restart an IOC
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-01-dev
|
||||
gather_facts: false
|
||||
|
||||
tasks:
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Start IOC"
|
||||
ansible.builtin.shell: |
|
||||
sudo shellbox start {{ ioc_port }}
|
||||
changed_when: true
|
||||
@@ -1,59 +0,0 @@
|
||||
- name: Deploy and Restart Service
|
||||
# TODO: dev/prod
|
||||
hosts: sls-vserv-bd-hla01-dev
|
||||
connection: local
|
||||
gather_facts: true # needed for ansible_user_uid
|
||||
|
||||
tasks:
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define service specific paths and names"
|
||||
ansible.builtin.set_fact:
|
||||
svc_current_dir: "/sls/bd/hla/{{ agebd_env }}/services/{{ target_service_name_lower }}/current"
|
||||
service_unit_name: "AGEBD-SERVICE-{{ target_service_name_lower | upper }}.service"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Ensure target directory structure exists"
|
||||
ansible.builtin.file:
|
||||
path: "{{ svc_current_dir }}"
|
||||
state: directory
|
||||
# ansible.builtin.shell: |
|
||||
# mkdir -p "{{ svc_current_dir }}"
|
||||
|
||||
# TODO: make sure this is what we want (essentially wipes existing dest dir)
|
||||
- name: "[{{ target_service_name_lower }}] Sync service deployment files"
|
||||
ansible.posix.synchronize:
|
||||
src: "{{ playbook_dir }}/../../../services/{{ target_service_name_lower }}/current/"
|
||||
dest: "{{ svc_current_dir }}/"
|
||||
delete: yes # This removes stale files on the target that no longer exist locally
|
||||
recursive: yes
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment variable inline"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ svc_current_dir }}/systemd/{{ service_unit_name }}"
|
||||
regexp: '\{\{\s*agebd_env\s*\}\}'
|
||||
replace: "{{ agebd_env }}"
|
||||
|
||||
# systemctl --user link --force "./{{ service_unit_name }}"
|
||||
- name: "[{{ target_service_name_lower }}] Symlink systemd unit file (Absolute Path)"
|
||||
ansible.builtin.file:
|
||||
src: "{{ svc_current_dir }}/systemd/{{ service_unit_name }}"
|
||||
dest: "~/.config/systemd/user/{{ service_unit_name }}"
|
||||
state: link
|
||||
force: yes # This overwrites the broken/existing symlink cleanly without error
|
||||
|
||||
# export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||
# systemctl --user daemon-reload
|
||||
# systemctl --user enable "{{ service_unit_name }}"
|
||||
# systemctl --user restart "{{ service_unit_name }}"
|
||||
- name: "[{{ target_service_name_lower }}] Enable and Restart Systemd Service"
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{ service_unit_name }}"
|
||||
scope: user
|
||||
daemon_reload: yes
|
||||
enabled: yes
|
||||
state: restarted
|
||||
environment:
|
||||
XDG_RUNTIME_DIR: "/run/user/{{ ansible_user_uid }}"
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
- name: Clone this repository
|
||||
ansible.builtin.git:
|
||||
repo: "git@gitea.psi.ch:sls/hla_framework_bd.git"
|
||||
dest: "{{ workspace_dir }}"
|
||||
accept_hostkey: true
|
||||
version: "{{ branch_name }}"
|
||||
force: true
|
||||
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Establish environment naming conventions"
|
||||
ansible.builtin.set_fact:
|
||||
service_name_upper: "{{ target_service_name_lower | upper }}"
|
||||
# Set suffix to "-DEV" if dev, otherwise empty ""
|
||||
env_suffix_upper: "{{ '-DEV' if agebd_env == 'dev' else '' }}"
|
||||
# Set suffix to "-dev" if dev, otherwise empty ""
|
||||
env_suffix_lower: "{{ '-dev' if agebd_env == 'dev' else '' }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define file paths"
|
||||
ansible.builtin.set_fact:
|
||||
ioc_base_dir: "{{ workspace_dir }}/services/{{ target_service_name_lower }}/current/ioc"
|
||||
orig_subs_name: "AGEBD-CPCL-{{ service_name_upper }}_main.subs"
|
||||
target_subs_name: "AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}_main.subs"
|
||||
orig_params_name: "AGEBD-CPCL-{{ service_name_upper }}_parameters.yaml"
|
||||
target_params_name: "AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}_parameters.yaml"
|
||||
|
||||
# Rename the subs file if we are in DEV
|
||||
- name: "[{{ target_service_name_lower }}] Rename substitution file for environment"
|
||||
ansible.builtin.command:
|
||||
cmd: "mv {{ ioc_base_dir }}/{{ orig_subs_name }} {{ ioc_base_dir }}/{{ target_subs_name }}"
|
||||
removes: "{{ ioc_base_dir }}/{{ orig_subs_name }}" # Only runs if the original file exists
|
||||
|
||||
# Rename the paramters file if we are in DEV
|
||||
- name: "[{{ target_service_name_lower }}] Rename parameters file for environment"
|
||||
ansible.builtin.command:
|
||||
cmd: "mv {{ ioc_base_dir }}/{{ orig_params_name }} {{ ioc_base_dir }}/{{ target_params_name }}"
|
||||
removes: "{{ ioc_base_dir }}/{{ orig_params_name }}" # Only runs if the original file exists
|
||||
|
||||
# Replace {{ agebd_env }} inside the newly renamed subs file
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment tokens inside subs file"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ ioc_base_dir }}/{{ target_subs_name }}"
|
||||
regexp: '\{\{\s*agebd_env\s*\}\}'
|
||||
replace: "{{ env_suffix_upper }}"
|
||||
|
||||
# Replace {{ agebd_env }} and {{ ioc_port }} inside the newly renamed params file
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment token inside params file"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ ioc_base_dir }}/{{ target_params_name }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
replace: "{{ item.replace | string }}"
|
||||
with_items:
|
||||
- { regexp: '\{\{\s*agebd_env\s*\}\}', replace: "{{ env_suffix_lower }}" }
|
||||
- { regexp: '\{\{\s*ioc_port\s*\}\}', replace: "{{ ioc_port }}" }
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Run ioc install"
|
||||
ansible.builtin.shell:
|
||||
cmd: "ioc install -V --facility sls --ioc AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }} --clean"
|
||||
chdir: "{{ ioc_base_dir }}"
|
||||
changed_when: true
|
||||
register: ioc_install_result
|
||||
# Force a pipeline failure if the command output contains error keywords
|
||||
# (ioc install ... returns exit code 0 even on failure...)
|
||||
failed_when: >
|
||||
ioc_install_result.rc != 0 or
|
||||
"[error]" in ioc_install_result.stderr or
|
||||
"Unable to write" in ioc_install_result.stderr
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
- name: Clone this repository
|
||||
ansible.builtin.git:
|
||||
repo: "git@gitea.psi.ch:sls/hla_framework_bd.git"
|
||||
dest: "{{ workspace_dir }}"
|
||||
accept_hostkey: true
|
||||
version: "{{ branch_name }}"
|
||||
force: true
|
||||
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Establish environment naming conventions"
|
||||
ansible.builtin.set_fact:
|
||||
service_name_upper: "{{ target_service_name_lower | upper }}"
|
||||
# Set suffix to "-DEV" if dev, otherwise empty ""
|
||||
env_suffix_upper: "{{ '-DEV' if agebd_env == 'dev' else '' }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define file paths"
|
||||
ansible.builtin.set_fact:
|
||||
ioc_base_dir: "{{ workspace_dir }}/services/{{ target_service_name_lower }}/current/ioc"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Restart IOC"
|
||||
ansible.builtin.shell:
|
||||
cmd: "ioc restart AGEBD-CPCL-{{ service_name_upper }}{{ env_suffix_upper }}"
|
||||
chdir: "{{ ioc_base_dir }}"
|
||||
changed_when: true
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Start IOC"
|
||||
ansible.builtin.shell: |
|
||||
sudo shellbox start {{ ioc_port }}
|
||||
changed_when: true
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
- name: Initialize service name
|
||||
ansible.builtin.set_fact:
|
||||
# Uses preferred_service_name_lower if defined in vars, otherwise falls back to the CLI extra-vars
|
||||
target_service_name_lower: "{{ preferred_service_name_lower | default(service_name_lower) }}"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Define service specific paths and names"
|
||||
ansible.builtin.set_fact:
|
||||
svc_current_dir: "/sls/bd/hla/{{ agebd_env }}/services/{{ target_service_name_lower }}/current"
|
||||
service_unit_name: "AGEBD-SERVICE-{{ target_service_name_lower | upper }}.service"
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Ensure target directory structure exists"
|
||||
ansible.builtin.file:
|
||||
path: "{{ svc_current_dir }}"
|
||||
state: directory
|
||||
# ansible.builtin.shell: |
|
||||
# mkdir -p "{{ svc_current_dir }}"
|
||||
|
||||
# TODO: make sure this is what we want (essentially wipes existing dest dir)
|
||||
- name: "[{{ target_service_name_lower }}] Sync service deployment files"
|
||||
ansible.posix.synchronize:
|
||||
src: "{{ playbook_dir }}/../../../services/{{ target_service_name_lower }}/current/"
|
||||
dest: "{{ svc_current_dir }}/"
|
||||
delete: yes # This removes stale files on the target that no longer exist locally
|
||||
recursive: yes
|
||||
|
||||
- name: "[{{ target_service_name_lower }}] Substitute environment variable inline"
|
||||
ansible.builtin.replace:
|
||||
path: "{{ svc_current_dir }}/systemd/{{ service_unit_name }}"
|
||||
regexp: '\{\{\s*agebd_env\s*\}\}'
|
||||
replace: "{{ agebd_env }}"
|
||||
|
||||
# systemctl --user link --force "./{{ service_unit_name }}"
|
||||
- name: "[{{ target_service_name_lower }}] Symlink systemd unit file (Absolute Path)"
|
||||
ansible.builtin.file:
|
||||
src: "{{ svc_current_dir }}/systemd/{{ service_unit_name }}"
|
||||
dest: "~/.config/systemd/user/{{ service_unit_name }}"
|
||||
state: link
|
||||
force: yes # This overwrites the broken/existing symlink cleanly without error
|
||||
|
||||
# export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||
# systemctl --user daemon-reload
|
||||
# systemctl --user enable "{{ service_unit_name }}"
|
||||
# systemctl --user restart "{{ service_unit_name }}"
|
||||
- name: "[{{ target_service_name_lower }}] Enable and Restart Systemd Service"
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{ service_unit_name }}"
|
||||
scope: user
|
||||
daemon_reload: yes
|
||||
enabled: yes
|
||||
state: restarted
|
||||
environment:
|
||||
XDG_RUNTIME_DIR: "/run/user/{{ ansible_user_uid }}"
|
||||
+7
-4
@@ -1,5 +1,8 @@
|
||||
# Ansible
|
||||
|
||||
\# TODO: Create venv and install ansible? That way not dependent on ansible
|
||||
being installed on machine.
|
||||
|
||||
## Running a playbook manually
|
||||
|
||||
Set vars on command line:
|
||||
@@ -13,7 +16,7 @@ ansible-playbook ansible/playbooks/add-new-service.yml \
|
||||
|
||||
### Install an IOC
|
||||
```
|
||||
ansible-playbook ansible/plays/ioc/ioc-install.yml \
|
||||
ansible-playbook ansible/playbooks/ioc-install.yml \
|
||||
-i ansible/hosts.yml \
|
||||
--extra-vars="agebd_env=dev branch_name=feature/add-service-playground service_name_lower=playground ioc_port=50003" \
|
||||
-v
|
||||
@@ -22,7 +25,7 @@ ansible-playbook ansible/plays/ioc/ioc-install.yml \
|
||||
### Start an IOC
|
||||
TODO: how to get the ioc_port in cicd? Add it to the branch name?
|
||||
```
|
||||
ansible-playbook ansible/plays/ioc/ioc-start.yml \
|
||||
ansible-playbook ansible/playbooks/ioc-start.yml \
|
||||
-i ansible/hosts.yml \
|
||||
--extra-vars="service_name_lower=playground ioc_port=50003" \
|
||||
-v
|
||||
@@ -30,8 +33,8 @@ ansible-playbook ansible/plays/ioc/ioc-start.yml \
|
||||
|
||||
### Restart an IOC
|
||||
```
|
||||
ansible-playbook ansible/plays/ioc/ioc-restart.yml \
|
||||
ansible-playbook ansible/playbooks/ioc-restart.yml \
|
||||
-i ansible/hosts.yml \
|
||||
--extra-vars="agebd_env=dev branch_name=feature/add-service-playground service_name_lower=playground" \
|
||||
-v
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user