| | |
| | | lab_host: "{{ item }}" |
| | | inventory_id: "{{ tower_inventory_id }}" |
| | | |
| | | # TODO: Configure Credential |
| | | # TODO: Create Job Template |
| | | - name: Determine if Credential Exists |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/credentials?name={{ tower_credential_name }}" |
| | | method: GET |
| | | user: "{{tower_admin}}" |
| | | password: "{{tower_admin_password}}" |
| | | validate_certs: False |
| | | status_code: |
| | | - 200 |
| | | register: response |
| | | changed_when: false |
| | | |
| | | - name: Obtain SSH Key |
| | | become: true |
| | | slurp: |
| | | src: "/root/.ssh/{{ guid }}key.pem" |
| | | register: credential_ssh_key |
| | | no_log: True |
| | | delegate_to: "{{ bastion_host }}" |
| | | when: response.json.count == 0 |
| | | |
| | | - name: Create Credential |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/credentials/" |
| | | method: POST |
| | | user: "{{tower_admin}}" |
| | | password: "{{tower_admin_password}}" |
| | | validate_certs: False |
| | | body: |
| | | name: "{{ tower_inventory_name }}" |
| | | organization: "{{ tower_org_id }}" |
| | | credential_type: 1 |
| | | ssh_key_data: "{{ credential_ssh_key.content | b64decode }}" |
| | | body_format: json |
| | | no_log: True |
| | | status_code: |
| | | - 201 |
| | | register: response |
| | | changed_when: response.status == 201 |
| | | when: response.json.count == 0 |
| | | |
| | | - name: Get Credential |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/credentials?name={{ tower_credential_name }}" |
| | | method: GET |
| | | user: "{{tower_admin}}" |
| | | password: "{{tower_admin_password}}" |
| | | validate_certs: False |
| | | status_code: |
| | | - 200 |
| | | register: response |
| | | changed_when: false |
| | | |
| | | - name: Set Credential ID |
| | | set_fact: |
| | | tower_credential_id: "{{ response.json | json_query('results[*].id') | first | int }}" |
| | | |
| | | - name: Get Inventory |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/inventories?name={{ tower_inventory_name }}" |
| | | method: GET |
| | | user: "{{tower_admin}}" |
| | | password: "{{tower_admin_password}}" |
| | | validate_certs: False |
| | | status_code: |
| | | - 200 |
| | | register: response |
| | | changed_when: false |
| | | |
| | | - name: Determine if Job Template Exists |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/job_templates?name={{ tower_job_template_name }}" |
| | |
| | | register: response |
| | | changed_when: false |
| | | |
| | | # - name: Create Job Template |
| | | # uri: |
| | | # url: "https://{{ ansible_tower_ip }}/api/v2/job_templates/" |
| | | # method: POST |
| | | # user: "{{tower_admin}}" |
| | | # password: "{{tower_admin_password}}" |
| | | # validate_certs: False |
| | | # body: |
| | | # name: "{{ tower_job_template_name }}" |
| | | # organization: "{{ tower_org_id }}" |
| | | # project: "{{ tower_project_id }}" |
| | | # inventory: "{{ tower_inventory_id }}" |
| | | # body_format: json |
| | | # status_code: |
| | | # - 201 |
| | | # register: response |
| | | # changed_when: response.status == 201 |
| | | # when: response.json.count == 0 |
| | | - name: Create Job Template |
| | | uri: |
| | | url: "https://{{ ansible_tower_ip }}/api/v2/job_templates/" |
| | | method: POST |
| | | user: "{{tower_admin}}" |
| | | password: "{{tower_admin_password}}" |
| | | validate_certs: False |
| | | body: |
| | | name: "{{ tower_job_template_name }}" |
| | | organization: "{{ tower_org_id }}" |
| | | project: "{{ tower_project_id }}" |
| | | inventory: "{{ tower_inventory_id }}" |
| | | credential: "{{ tower_credential_id }}" |
| | | playbook: "{{ tower_job_template_playbook }}" |
| | | body_format: json |
| | | status_code: |
| | | - 201 |
| | | register: response |
| | | changed_when: response.status == 201 |
| | | when: response.json.count == 0 |