Red Hat EL8 is available now since May 7th. It’s not particularly exciting IMO. Many “new” features have been available on other distros quite a while ago. Here, I want to evaluate how easy it is to adopt my existing ansible playbooks on this new version of Red Hat.
Quickest way to test my playbooks is to launch a new ec2 instance on aws. Right away, I ran into several problems. First, Red Hat now puts python under /usr/libexec/platform-python. I like this move. It allows users to install python of their choice without needing to worry about breaking the OS. Problem is ansible fails immediately at facts gathering stage. Setting up PATH environment variable does not work at this stage. To tell ansible to use python on a non-default location, I need to set up a variable in my inventory like this
kf-el8.aws.lab ansible_host=18.104.22.168 ansible_python_interpreter=/usr/libexec/platform-python
Update: Looks like I’m not the only one with this issue. In Ansible 2.8, python are automatically discovered and manual specification is no longer required. See https://docs.ansible.com/ansible/2.8/reference_appendices/interpreter_discovery.html
Next problem is with AWS’s RHUI. At the time of writing, it isn’t quite working. I get a failed to synchronize cache error when I tried to run yum or dnf. Turns out this affects ap-east-1, aka Hong Kong. RHUI works fine in Tokyo.
$ dnf repolist
Red Hat Update Infrastructure 3 Client Configuration Server 8 Beta 0.0 B/s | 0 B 00:01
Red Hat Enterprise Linux 8 for x86_64 - AppStream from RHUI (RPMs) 0.0 B/s | 0 B 00:01
Red Hat Enterprise Linux 8 for x86_64 - BaseOS from RHUI (RPMs) 0.0 B/s | 0 B 00:01
Failed to synchronize cache for repo 'rhui-client-config-server-8', ignoring this repo.
Failed to synchronize cache for repo 'rhui-rhel-8-appstream-rhui-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhui-rhel-8-baseos-rhui-rpms', ignoring this repo.
I launched a new instance in Tokyo and my playbook runs fine. With a small exception, that the screen package is not available. I had to replace it with tmux.
It’s good to know I can use the very same ansible playbook on EL8. The playbook has been developed for years to cover Red Hat / CentOS / Ubuntu. I would hate to add more conditional tasks specifically for EL8.
On a relevant note, RHEL8 provides the following version of packages:
- Apache: 2.4.37
- Nginx: 1.14.1
- php: 7.2.11
- MariaDB: 10.3.11
- PostgreSQL: 10.6
- Redis: 5.0.3
- Git: 2.18.1
- OpenSSL: 1.1.1, supports TLS1.3
- Kernel: 4.18.0
- Python: 3.6.8
- Platform-python: 3.6.8
- Ruby: 2.5.3
At the time of writing, there is no EPEL or SCL for RHEL8.
Another notable feature is a web-based console, aka cockpit. It can be accessed at https://machine-ip:9090 after running the following commands:
systemctl enable --now cockpit.socket
The web console offers a few interesting features, such as joining AD domain. One may opt to install the cockpit-dashboard package to add a dashboard tab to the console. There, one can add additional systems to the dashboard. It’ll be interesting to see cockpit exposing system management as REST api.