<%# name: Capsule Upgrade Playbook snippet: false template_inputs: - name: target_version required: true input_type: user advanced: false value_type: plain hidden_value: false - name: whitelist_options required: false input_type: user advanced: false value_type: plain hidden_value: false model: JobTemplate job_category: Ansible Playbook description_format: "%{template_name}" provider_type: Ansible kind: job_template feature: ansible_run_capsule_upgrade %> --- - hosts: all tasks: - name: Gather the rpm package facts package_facts: manager: auto - name: Fail if the target server is a Satellite server fail: msg: "This playbook cannot be executed on a Satellite server. Use only on a Capsule server." when: "'satellite' in ansible_facts.packages" - name: Install satellite-maintain if not present package: name: rubygem-foreman_maintain state: present when: "'rubygem-foreman_maintain' not in ansible_facts.packages" - block: <%- whitelist_option = if input('whitelist_options').present? "--whitelist=#{input('whitelist_options')}" end -%> - name: Upgrade Capsule server using satellite-maintain shell: satellite-maintain upgrade run --assumeyes --target-version=<%= input('target_version') %> <%= whitelist_option %> register: result - name: Re-Gather the rpm package facts after the upgrade package_facts: manager: auto - name: satellite-maintain upgrade return code is zero debug: msg: "Success! Capsule server upgrade completed. Current version of Capsule server server is {{ ansible_facts.packages['satellite-capsule'][0]['version'] }}." rescue: - name: Print satellite-maintain output debug: var: result - name: Grep top 10 Error messages from /var/log/foreman-installer/capsule.log shell: grep '^\[ERROR' /var/log/foreman-installer/capsule.log | head -n10 register: output_grep - name: Print grepped Error messages debug: var: output_grep.stdout_lines - name: satellite-maintain upgrade return code is non-zero fail: msg: "Failed! Capsule server upgrade failed. See /var/log/foreman-installer/capsule.log in the Capsule server for more information"