mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-01-11 10:00:03 -03:30
* Remove leftover files for Coreos Coreos was replaced by flatcar in 058438a25 but the file was copied instead of moved. * Remove workarounds for resolved ansible issues * boostrap: Use first_found to include per distro Using directly ID and VARIANT_ID with first_found allow for less manual includes. Distro "families" are simply handled by symlinks. * boostrap: don't set ansible_python_interpreter - Allows users to override the chosen python_interpreter with group_vars easily (group_vars have lesser precedence than facts) - Allows us to use vars at the task scope to use a virtual env Ansible python discovery has improved, so those workarounds should not be necessary anymore. Special workaround for Flatcar, due to upstream ansible not willing to support it.
114 lines
4.1 KiB
YAML
114 lines
4.1 KiB
YAML
---
|
|
- name: Gather host facts to get ansible_distribution_version ansible_distribution_major_version
|
|
setup:
|
|
gather_subset: '!all'
|
|
filter: ansible_distribution_*version
|
|
|
|
- name: Add proxy to yum.conf or dnf.conf if http_proxy is defined
|
|
community.general.ini_file:
|
|
path: "{{ ((ansible_distribution_major_version | int) < 8) | ternary('/etc/yum.conf', '/etc/dnf/dnf.conf') }}"
|
|
section: main
|
|
option: proxy
|
|
value: "{{ http_proxy | default(omit) }}"
|
|
state: "{{ http_proxy | default(False) | ternary('present', 'absent') }}"
|
|
no_extra_spaces: true
|
|
mode: 0644
|
|
become: true
|
|
when: not skip_http_proxy_on_os_packages
|
|
|
|
- name: Add proxy to RHEL subscription-manager if http_proxy is defined
|
|
command: /sbin/subscription-manager config --server.proxy_hostname={{ http_proxy | regex_replace(':\d+$') | regex_replace('^.*://') }} --server.proxy_port={{ http_proxy | regex_replace('^.*:') }}
|
|
become: true
|
|
when:
|
|
- not skip_http_proxy_on_os_packages
|
|
- http_proxy is defined
|
|
|
|
- name: Check RHEL subscription-manager status
|
|
command: /sbin/subscription-manager status
|
|
register: rh_subscription_status
|
|
changed_when: "rh_subscription_status.rc != 0"
|
|
ignore_errors: true # noqa ignore-errors
|
|
become: true
|
|
|
|
- name: RHEL subscription Organization ID/Activation Key registration
|
|
community.general.redhat_subscription:
|
|
state: present
|
|
org_id: "{{ rh_subscription_org_id }}"
|
|
activationkey: "{{ rh_subscription_activation_key }}"
|
|
force_register: true
|
|
notify: RHEL auto-attach subscription
|
|
become: true
|
|
when:
|
|
- rh_subscription_org_id is defined
|
|
- rh_subscription_status.changed
|
|
|
|
# this task has no_log set to prevent logging security sensitive information such as subscription passwords
|
|
- name: RHEL subscription Username/Password registration
|
|
community.general.redhat_subscription:
|
|
state: present
|
|
username: "{{ rh_subscription_username }}"
|
|
password: "{{ rh_subscription_password }}"
|
|
auto_attach: true
|
|
force_register: true
|
|
syspurpose:
|
|
usage: "{{ rh_subscription_usage }}"
|
|
role: "{{ rh_subscription_role }}"
|
|
service_level_agreement: "{{ rh_subscription_sla }}"
|
|
sync: true
|
|
notify: RHEL auto-attach subscription
|
|
become: true
|
|
no_log: "{{ not (unsafe_show_logs | bool) }}"
|
|
when:
|
|
- rh_subscription_username is defined
|
|
- rh_subscription_status.changed
|
|
|
|
# container-selinux is in extras repo
|
|
- name: Enable RHEL 7 repos
|
|
community.general.rhsm_repository:
|
|
name:
|
|
- "rhel-7-server-rpms"
|
|
- "rhel-7-server-extras-rpms"
|
|
state: "{{ 'enabled' if (rhel_enable_repos | default(True) | bool) else 'disabled' }}"
|
|
when:
|
|
- ansible_distribution_major_version == "7"
|
|
- (not rh_subscription_status.changed) or (rh_subscription_username is defined) or (rh_subscription_org_id is defined)
|
|
|
|
# container-selinux is in appstream repo
|
|
- name: Enable RHEL 8 repos
|
|
community.general.rhsm_repository:
|
|
name:
|
|
- "rhel-8-for-*-baseos-rpms"
|
|
- "rhel-8-for-*-appstream-rpms"
|
|
state: "{{ 'enabled' if (rhel_enable_repos | default(True) | bool) else 'disabled' }}"
|
|
when:
|
|
- ansible_distribution_major_version == "8"
|
|
- (not rh_subscription_status.changed) or (rh_subscription_username is defined) or (rh_subscription_org_id is defined)
|
|
|
|
- name: Check presence of fastestmirror.conf
|
|
stat:
|
|
path: /etc/yum/pluginconf.d/fastestmirror.conf
|
|
get_attributes: no
|
|
get_checksum: no
|
|
get_mime: no
|
|
register: fastestmirror
|
|
|
|
# the fastestmirror plugin can actually slow down Ansible deployments
|
|
- name: Disable fastestmirror plugin if requested
|
|
lineinfile:
|
|
dest: /etc/yum/pluginconf.d/fastestmirror.conf
|
|
regexp: "^enabled=.*"
|
|
line: "enabled=0"
|
|
state: present
|
|
become: true
|
|
when:
|
|
- fastestmirror.stat.exists
|
|
- not centos_fastestmirror_enabled
|
|
|
|
# libselinux-python is required on SELinux enabled hosts
|
|
# See https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#managed-node-requirements
|
|
- name: Install libselinux python package
|
|
package:
|
|
name: "{{ ((ansible_distribution_major_version | int) < 8) | ternary('libselinux-python', 'python3-libselinux') }}"
|
|
state: present
|
|
become: true
|