diff --git a/roles/install_demo/tasks/add_job_template.yml b/roles/install_demo/tasks/add_job_template.yml deleted file mode 100644 index 1f0c01d..0000000 --- a/roles/install_demo/tasks/add_job_template.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -- name: add tower project - tower_project: - name: "{{item.value.project.name}}" - description: "{{item.value.project.description}}" - organization: "{{item.value.project.organization}}" - scm_type: "{{item.value.project.scm_type}}" - scm_url: "{{item.value.project.scm_url}}" - tower_username: "{{my_tower_username}}" - tower_password: "{{my_tower_password}}" - tower_host: "{{my_tower_host}}" - validate_certs: no - -- name: "add job template {{item.value.name}} without survey" - tower_job_template: - name: "{{item.value.name}}" - description: "{{item.value.description}}" - job_type: "{{item.value.job_type}}" - inventory: "{{item.value.inventory}}" - project: "{{item.value.project.name}}" - playbook: "{{item.value.playbook}}" - fact_caching_enabled: "{{item.value.fact_caching_enabled | default('no')}}" - credential: "{{item.value.credential}}" - survey_enabled: "{{item.value.survey_enabled}}" - tower_username: "{{my_tower_username}}" - tower_password: "{{my_tower_password}}" - tower_host: "{{my_tower_host}}" - validate_certs: no - when: - - workshop_type in item.value.workshop_type - - not item.value.survey_enabled - -- name: "add job template {{item.value.name}} with survey" - tower_job_template: - name: "{{item.value.name}}" - description: "{{item.value.description}}" - job_type: "{{item.value.job_type}}" - inventory: "{{item.value.inventory}}" - project: "{{item.value.project.name}}" - playbook: "{{item.value.playbook}}" - fact_caching_enabled: "{{item.value.fact_caching_enabled | default('no')}}" - credential: "{{item.value.credential}}" - survey_enabled: "{{item.value.survey_enabled}}" - survey_spec: "{{item.value.survey_spec}}" - tower_username: "{{my_tower_username}}" - tower_password: "{{my_tower_password}}" - tower_host: "{{my_tower_host}}" - validate_certs: no - when: - - workshop_type in item.value.workshop_type - - item.value.survey_enabled diff --git a/roles/install_demo/tasks/single_job_template.yml b/roles/install_demo/tasks/job_template.yml similarity index 100% rename from roles/install_demo/tasks/single_job_template.yml rename to roles/install_demo/tasks/job_template.yml diff --git a/roles/install_demo/tasks/job_template_loop.yml b/roles/install_demo/tasks/job_template_loop.yml new file mode 100644 index 0000000..6b046dc --- /dev/null +++ b/roles/install_demo/tasks/job_template_loop.yml @@ -0,0 +1,61 @@ +--- +- name: block for job template (non-workflow) + block: + - name: add tower project + tower_project: + name: "{{item.value.project.name}}" + description: "{{item.value.project.description}}" + organization: "{{item.value.project.organization}}" + scm_type: "{{item.value.project.scm_type}}" + scm_url: "{{item.value.project.scm_url}}" + tower_username: "{{my_tower_username}}" + tower_password: "{{my_tower_password}}" + tower_host: "{{my_tower_host}}" + validate_certs: no + + - name: "add job template {{item.value.name}} without survey" + tower_job_template: + name: "{{item.value.name}}" + description: "{{item.value.description}}" + job_type: "{{item.value.job_type}}" + inventory: "{{item.value.inventory}}" + project: "{{item.value.project.name}}" + playbook: "{{item.value.playbook}}" + fact_caching_enabled: "{{item.value.fact_caching_enabled | default('no')}}" + credential: "{{item.value.credential}}" + survey_enabled: "{{item.value.survey_enabled}}" + tower_username: "{{my_tower_username}}" + tower_password: "{{my_tower_password}}" + tower_host: "{{my_tower_host}}" + validate_certs: no + when: + - workshop_type in item.value.workshop_type + - not item.value.survey_enabled + + - name: "add job template {{item.value.name}} with survey" + tower_job_template: + name: "{{item.value.name}}" + description: "{{item.value.description}}" + job_type: "{{item.value.job_type}}" + inventory: "{{item.value.inventory}}" + project: "{{item.value.project.name}}" + playbook: "{{item.value.playbook}}" + fact_caching_enabled: "{{item.value.fact_caching_enabled | default('no')}}" + credential: "{{item.value.credential}}" + survey_enabled: "{{item.value.survey_enabled}}" + survey_spec: "{{item.value.survey_spec}}" + tower_username: "{{my_tower_username}}" + tower_password: "{{my_tower_password}}" + tower_host: "{{my_tower_host}}" + validate_certs: no + when: + - workshop_type in item.value.workshop_type + - item.value.survey_enabled + when: + - item.value.workflow is not defined or not item.value.workflow + +- name: install workflow inside loop (workflow) + include_tasks: workflow_loop.yml + when: + - item.value.workflow is defined + - item.value.workflow diff --git a/roles/install_demo/tasks/main.yml b/roles/install_demo/tasks/main.yml index de3427e..0b3ac41 100644 --- a/roles/install_demo/tasks/main.yml +++ b/roles/install_demo/tasks/main.yml @@ -4,18 +4,18 @@ msg: "install {{demo}} on {{my_tower_host}}" - name: install all job templates - include: add_job_template.yml + include_tasks: job_template_loop.yml loop: "{{dict(hostvars[inventory_hostname]|dictsort|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined'))|dict2items}}" when: demo == "all" - name: install single job template - include: single_job_template.yml + include_tasks: job_template.yml when: - demo != "all" - - hostvars[inventory_hostname][demo].workflow is undefined or not hostvars[inventory_hostname][demo].workflow + - hostvars[inventory_hostname][demo].workflow is not defined or not hostvars[inventory_hostname][demo].workflow - name: install single workflow - include: workflow.yml + include_tasks: workflow.yml when: - demo != "all" - hostvars[inventory_hostname][demo].workflow is defined diff --git a/roles/install_demo/tasks/workflow.yml b/roles/install_demo/tasks/workflow.yml index c1e21e5..44f09ec 100644 --- a/roles/install_demo/tasks/workflow.yml +++ b/roles/install_demo/tasks/workflow.yml @@ -1,11 +1,12 @@ --- #these tasks will install a workflow -- name: install all job templates in relation to workflow - include: add_job_template.yml +- name: "install all job templates in relation to workflow {{hostvars[inventory_hostname][demo].name}}" + include_tasks: add_job_template.yml loop: "{{hostvars[inventory_hostname][demo].job_templates|dict2items}}" -- tower_workflow_template: +- name: "install workflow template {{hostvars[inventory_hostname][demo].name}}" + tower_workflow_template: name: "{{hostvars[inventory_hostname][demo].name}}" description: "{{hostvars[inventory_hostname][demo].description}}" organization: "{{hostvars[inventory_hostname][demo].organization}}" diff --git a/roles/install_demo/tasks/workflow_loop.yml b/roles/install_demo/tasks/workflow_loop.yml new file mode 100644 index 0000000..628cff8 --- /dev/null +++ b/roles/install_demo/tasks/workflow_loop.yml @@ -0,0 +1,15 @@ +--- +- name: "INSIDE LOOP - install all job templates in relation to workflow {{item.value.name}}" + include_tasks: job_template_loop.yml + loop: "{{item.value.job_templates|dict2items}}" + +- name: "INSIDE LOOP - install workflow template {{item.value.name}}" + tower_workflow_template: + name: "{{item.value.name}}" + description: "{{item.value.description}}" + organization: "{{item.value.organization}}" + schema: "{{item.value.schema}}" + tower_username: "{{my_tower_username}}" + tower_password: "{{my_tower_password}}" + tower_host: "{{my_tower_host}}" + validate_certs: no