Barry Melbourne
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 169 additions and 18 deletions
Unified View
Diff Options
-
29Vagrantfile
-
4docs/centos8.md
-
2docs/offline-environment.md
-
38docs/rhel.md
-
11inventory/sample/group_vars/all/all.yml
-
4roles/bootstrap-os/handlers/main.yml
-
85roles/bootstrap-os/tasks/bootstrap-redhat.yml
-
5roles/bootstrap-os/tasks/main.yml
-
2roles/container-engine/containerd/defaults/main.yml
-
2roles/container-engine/containerd/tasks/containerd_repo.yml
-
2roles/container-engine/docker/defaults/main.yml
-
2roles/container-engine/docker/tasks/main.yml
-
1roles/container-engine/docker/vars/redhat.yml
@ -0,0 +1,38 @@ |
|||||
|
# Red Hat Enterprise Linux (RHEL) |
||||
|
|
||||
|
## RHEL Support Subscription Registration |
||||
|
|
||||
|
In order to install packages via yum or dnf, RHEL 7/8 hosts are required to be registered for a valid Red Hat support subscription. |
||||
|
|
||||
|
You can apply for a 1-year Development support subscription by creating a [Red Hat Developers](https://developers.redhat.com/) account. Be aware though that as the Red Hat Developers subscription is limited to only 1 year, it should not be used to register RHEL 7/8 hosts provisioned in Production environments. |
||||
|
|
||||
|
Once you have a Red Hat support account, simply add the credentials to the Ansible inventory parameters `rh_subscription_username` and `rh_subscription_password` prior to deploying Kubespray. If your company has a Corporate Red Hat support account, then obtain an **Organization ID** and **Activation Key**, and add these to the Ansible inventory parameters `rh_subscription_org_id` and `rh_subscription_activation_key` instead of using your Red Hat support account credentials. |
||||
|
|
||||
|
```ini |
||||
|
rh_subscription_username: "" |
||||
|
rh_subscription_password: "" |
||||
|
# rh_subscription_org_id: "" |
||||
|
# rh_subscription_activation_key: "" |
||||
|
``` |
||||
|
|
||||
|
Either the Red Hat support account username/password, or Organization ID/Activation Key combination must be specified in the Ansible inventory in order for the Red Hat subscription registration to complete successfully during the deployment of Kubespray. |
||||
|
|
||||
|
Update the Ansible inventory parameters `rh_subscription_usage`, `rh_subscription_role` and `rh_subscription_sla` if necessary to suit your specific requirements. |
||||
|
|
||||
|
```ini |
||||
|
rh_subscription_usage: "Development" |
||||
|
rh_subscription_role: "Red Hat Enterprise Server" |
||||
|
rh_subscription_sla: "Self-Support" |
||||
|
``` |
||||
|
|
||||
|
If the RHEL 7/8 hosts are already registered to a valid Red Hat support subscription via an alternative configuration management approach prior to the deployment of Kubespray, the successful RHEL `subscription-manager` status check will simply result in the RHEL subscription registration tasks being skipped. |
||||
|
|
||||
|
## RHEL 8 |
||||
|
|
||||
|
RHEL 8 ships only with iptables-nft (ie without iptables-legacy) |
||||
|
The only tested configuration for now is using Calico CNI |
||||
|
You need to use K8S 1.17+ and to add `calico_iptables_backend: "NFT"` to your configuration |
||||
|
|
||||
|
If you have containers that are using iptables in the host network namespace (`hostNetwork=true`), |
||||
|
you need to ensure they are using iptables-nft. |
||||
|
An example how k8s do the autodetection can be found [in this PR](https://github.com/kubernetes/kubernetes/pull/82966) |
@ -0,0 +1,4 @@ |
|||||
|
--- |
||||
|
- name: RHEL auto-attach subscription |
||||
|
command: /sbin/subscription-manager attach --auto |
||||
|
become: true |
@ -0,0 +1,85 @@ |
|||||
|
--- |
||||
|
- name: Gather host facts to get ansible_distribution_version ansible_distribution_major_version |
||||
|
setup: |
||||
|
gather_subset: '!all' |
||||
|
filter: ansible_distribution_*version |
||||
|
|
||||
|
- name: Check RHEL subscription-manager status |
||||
|
command: /sbin/subscription-manager status |
||||
|
register: rh_subscription_status |
||||
|
changed_when: "rh_subscription_status != 0" |
||||
|
ignore_errors: true |
||||
|
become: true |
||||
|
|
||||
|
- name: RHEL subscription Organization ID/Activation Key registration |
||||
|
redhat_subscription: |
||||
|
state: present |
||||
|
org_id: "{{ rh_subscription_org_id }}" |
||||
|
activationkey: "{{ rh_subscription_activation_key }}" |
||||
|
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 |
||||
|
ignore_errors: true |
||||
|
become: true |
||||
|
when: |
||||
|
- rh_subscription_org_id is defined |
||||
|
- rh_subscription_status.changed |
||||
|
|
||||
|
- name: RHEL subscription Username/Password registration |
||||
|
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 |
||||
|
ignore_errors: true |
||||
|
become: true |
||||
|
when: |
||||
|
- rh_subscription_username is defined |
||||
|
- rh_subscription_status.changed |
||||
|
|
||||
|
- name: Check presence of fastestmirror.conf |
||||
|
stat: |
||||
|
path: /etc/yum/pluginconf.d/fastestmirror.conf |
||||
|
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 |
||||
|
|
||||
|
- name: Add proxy to /etc/yum.conf if http_proxy is defined |
||||
|
ini_file: |
||||
|
path: "/etc/yum.conf" |
||||
|
section: main |
||||
|
option: proxy |
||||
|
value: "{{ http_proxy | default(omit) }}" |
||||
|
state: "{{ http_proxy | default(False) | ternary('present', 'absent') }}" |
||||
|
no_extra_spaces: true |
||||
|
become: true |
||||
|
|
||||
|
# 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 |
Write
Preview
Loading…
Cancel
Save