Я борюсь с ansible, так как задача, определенная в playbook, не выполняется для управления экземпляром AWS. Rds.
Это команда, которую я выполняю в конвейере jenkins:
состояние: "выполняется"
идентификатор: "myDatabase"
sh "ansible-playbook ${env.WORKSPACE}/cost-optimization/ansible/manage_rds.yml --extra-vars 'instanceState=${state} identifier=${dbsIdentifier}'"
Книга воспроизведения выглядит следующим образом:
manage_rds.yml:
---
- hosts: localhost
vars:
rdsState: "{{instanceState}}"
rdsIdentifier: "{{identifier|lower}}"
tasks:
- name: "Starting RDS instances"
rds_instance:
state: running
db_instance_identifier: "{{ rdsIdentifier }}"
wait: yes
register: rds_result
when: rdsState == "running"
- name: "Stopping RDS instances"
rds_instance:
state: stopping
db_instance_identifier: "{{ rdsIdentifier }}"
wait: yes
register: rds_result
when: rdsState == "stopped"
- name: Show RDS result
debug:
var: rds_result
- import_tasks: tasks/task_create_partial_report.yml
vars:
identifier: "{{rdsIdentifier|lower}}"
partial: "db"
Я ожидаю экземпляр AWS RDS раскручивается Вместо этого результат выглядит следующим образом:
TASK [Starting RDS instances] **************************************************
ok: [localhost]
TASK [Stopping RDS instances] **************************************************
skipping: [localhost]
TASK [Show RDS result] *********************************************************
ok: [localhost] => {
"rds_result": {
"changed": false,
"skip_reason": "Conditional result was False",
"skipped": true
}
}
Любая идея, как решить эту проблему?
РЕДАКТИРОВАТЬ:
Я следовал рекомендации ниже. Тем не менее, экземпляр RDS все еще не затронут:
+ ansible-playbook /var/lib/jenkins/workspace/.../ansible/manage_rds.yml --extra-vars 'instanceState=running identifier=myDatabase'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Starting RDS instances] **************************************************
ok: [localhost]
TASK [Show RDS result] *********************************************************
ok: [localhost] => {
"rds_result": {
"allocated_storage": 20,
"associated_roles": [],
"auto_minor_version_upgrade": false,
"availability_zone": "eu-central-1a",
"backup_retention_period": 21,
"ca_certificate_identifier": "rds-ca-2015",
"changed": false,
"character_set_name": "SQL_Latin1_General_CP1_CI_AS",
"copy_tags_to_snapshot": true,
"db_instance_arn": "arn:aws:rds:mydatabase",
"db_instance_class": "db.t2.micro",
"db_instance_identifier": "mydatabase",
"db_instance_port": 0,
"db_instance_status": "stopped",
"db_parameter_groups": [
{
"db_parameter_group_name": "....-sqlserver-ex-14-00",
"parameter_apply_status": "in-sync"
}
],
...
Таким образом, состояние остается остановленным, даже если оно настроено на работу.