deploy/ansible/roles-os/1.3-repository/tasks/1.3.0-preparation-Suse.yaml (57 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
- name: "1.3 Repository - Ensure zypper repo is configured on SLE VMs"
block:
# If there are no repos configured zypper lr will fail with rc == 6
- name: "1.3 Repository - Check that zypper repos are registered"
ansible.builtin.command: zypper lr
# command/shell actions always report changed even if they are
# not making any changes; we know this command action doesn't
# change anything so ensure it doesn't report as changed.
changed_when: false
- name: "1.3 Repository - Check connect to SUSE repos via SUSEConnect"
ansible.builtin.command: SUSEConnect --status
# command/shell actions always report changed even if they are
# not making any changes; we know this command action doesn't
# change anything so ensure it doesn't report as changed.
changed_when: false
environment:
ZYPP_LOCK_TIMEOUT: "60"
rescue:
# Attempt to configure the repos by re-registering instance
- name: "1.3 Repository - Attempt to re-register SLE instance with Public Cloud Update Infrastructure and rescue"
block:
- name: "1.3 Repository - Attempt to re-register SLE instance with Public Cloud Update Infrastructure cleanup"
ansible.builtin.shell: |
SUSEConnect --cleanup
- name: "1.3 Repository - Attempt to re-register SLE instance with Public Cloud Update Infrastructure"
ansible.builtin.shell: |
rm -f /etc/SUSEConnect
rm -f /etc/zypp/{repos,services,credentials}.d/*
rm -f /usr/lib/zypp/plugins/services/*
sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
export PYTHONWARNINGS="ignore:Unverified HTTPS request"
/usr/sbin/registercloudguest --force-new
register: reg_result
# registercloudguest rc == 1 when successful
failed_when: reg_result.rc > 1
environment:
ZYPP_LOCK_TIMEOUT: "60"
- name: "1.3 Packages - Wait 30 secs before retrying"
ansible.builtin.wait_for:
timeout: 30
- name: "1.3 Repository - Verify that zypper repos are configured after re-registering SLE instance"
ansible.builtin.command: zypper lr
register: zypper_lr_result
until: zypper_lr_result.rc == 0
retries: 10
delay: 30
rescue:
- name: "Print stderr before error handling"
ansible.builtin.debug:
msg: "Result obj: {{ zypper_lr_result }}"
- name: "Error handling: 1.3 Repository - Verify that zypper repos are configured after re-registering SLE instance"
ansible.builtin.fail:
msg: "{{ zypper_lr_result.msg | try_get_error_code(task_tag='zypper_registration') }}"
- name: "1.3 Repository - Ensure additional zypper repo is configured on SLE VMs and rescue"
block:
# If there are no repos configured zypper lr will fail with rc == 6
- name: "1.3 Repository - Check that zypper repos are registered"
ansible.builtin.command: zypper lr
# command/shell actions always report changed even if they are
# not making any changes; we know this command action doesn't
# change anything so ensure it doesn't report as changed.
register: zypper_lr_result
changed_when: false
rescue:
- name: "Print stderr before error handling"
ansible.builtin.debug:
msg: "Result object: {{ zypper_lr_result }}"
- name: "Error handling 1.3 Repository - Check that zypper repos are registered"
ansible.builtin.fail:
msg: "{{ zypper_lr_result.msg | try_get_error_code(task_tag='zypper_registration') }}"