Oracle: delius-core-dev_oem_metrics_setup #24
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Oracle: OEM Metrics Setup" | |
run-name: "Oracle: ${{ format('{0}', github.event.inputs.TargetEnvironment) }}_oem_metrics_setup" | |
on: | |
workflow_dispatch: | |
inputs: | |
TargetEnvironment: | |
description: "Target environment" | |
required: true | |
type: choice | |
options: | |
- "delius-core-dev" | |
- "delius-core-test" | |
- "delius-core-training" | |
- "delius-core-stage" | |
- "delius-core-pre-prod" | |
- "delius-core-prod" | |
TargetHost: | |
description: "Database target host" | |
required: true | |
type: choice | |
options: | |
- "delius_primarydb" | |
- "delius_standbydb1" | |
- "delius_standbydb2" | |
- "mis_primarydb" | |
- "mis_standbydb1" | |
- "misboe_primarydb" | |
- "misboe_standbydb1" | |
- "misdsd_primarydb" | |
- "misdsd_standbydb1" | |
VerboseOutput: | |
description: "Verbose Output level" | |
type: choice | |
default: "" | |
options: | |
- "" | |
- "-vv" | |
- "-vvv" | |
- "-vvvv" | |
SourceCodeVersion: | |
description: "Source version for the hmpps-delius-operation-automation. Enter a pull request, branch, commit ID, tag, or reference." | |
type: string | |
default: "main" | |
SourceConfigVersion: | |
description: "Source version for the modernisation-platform-configuration-management. Enter a pull request, branch, commit ID, tag, or reference." | |
type: string | |
default: "main" | |
env: | |
ansible_config: operations/playbooks/ansible.cfg | |
permissions: | |
contents: read | |
packages: read | |
id-token: write | |
jobs: | |
build_target_name: | |
runs-on: ubuntu-latest | |
outputs: | |
TargetHost: ${{ steps.preparetargetname.outputs.TargetHost }} | |
steps: | |
- name: Prepare Target Name | |
id: preparetargetname | |
run: echo TargetHost="environment_name_$(echo ${{ github.event.inputs.TargetEnvironment }} | sed 's/delius-core-dev/delius_core_development_dev/;s/delius-core-test/delius_core_test_test/;s/delius-core-training/delius_core_test_training/;s/delius-core-stage/delius_core_preproduction_stage/;s/delius-core-pre-prod/delius_core_preproduction_pre_prod/;s/delius-core-prod/delius_core_production_prod/')_${{ github.event.inputs.TargetHost }}" >> $GITHUB_OUTPUT | |
deployment: | |
name: oracle-db-oem-metrics-setup | |
needs: build_target_name | |
environment: ${{ github.event.inputs.TargetEnvironment }} | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ministryofjustice/hmpps-delius-operational-automation:0.1 | |
timeout-minutes: 1440 | |
env: | |
command: ansible-playbook operations/playbooks/delius_oem_metrics_setup/playbook.yml | |
inventory: inventory/ansible | |
continue-on-error: false | |
steps: | |
- name: Checkout From hmpps-delius-operational-automation | |
uses: actions/checkout@v4 | |
with: | |
repository: ministryofjustice/hmpps-delius-operational-automation | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
playbooks/ansible.cfg | |
playbooks/delius_oem_metrics_setup | |
common/* | |
path: operations | |
ref: ${{ github.event.inputs.SourceCodeVersion }} | |
fetch-depth: 0 | |
- name: Checkout Role From modernisation-platform-configuration-management | |
uses: actions/checkout@v4 | |
with: | |
repository: ministryofjustice/modernisation-platform-configuration-management | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
ansible/roles/secretsmanager-passwords | |
ansible/roles/get-ec2-facts | |
ansible/roles/get-modernisation-platform-facts | |
path: roles | |
ref: ${{ github.event.inputs.SourceConfigVersion }} | |
fetch-depth: 0 | |
- name: Checkout Inventory From modernisation-platform-configuration-management | |
uses: actions/checkout@v4 | |
with: | |
repository: ministryofjustice/modernisation-platform-configuration-management | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
ansible/hosts | |
ansible/group_vars | |
path: inventory | |
ref: ${{ github.event.inputs.SourceConfigVersion }} | |
fetch-depth: 0 | |
- name: Configure AWS Credentials | |
id: login-aws | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: "arn:aws:iam::${{ vars.AWS_ACCOUNT_ID }}:role/modernisation-platform-oidc-cicd" | |
role-session-name: "hmpps-delius-operational-automation-${{ github.run_number }}" | |
aws-region: "eu-west-2" | |
- name: Start OEM Metrics Setup | |
run: | | |
export ANSIBLE_CONFIG=$ansible_config | |
# Link the checked out configuration roles to somewhere Ansible will be able to find them | |
ln -s $PWD/roles/ansible/roles $PWD/operations/playbooks/delius_oem_metrics_setup/roles | |
$command -i $inventory -e target=${{needs.build_target_name.outputs.TargetHost}} ${{ github.event.inputs.VerboseOutput }} |