Deploying Red Hat Enterprise Linux Atomic Host with Red Hat Satellite 6
With the ever changing landscape in IT, many enterprise environments are looking for ways to reduce or eliminate downtime, improve security, reduce footprint, and achieve application portability. Red Hat Enterprise Linux Atomic Host provides a way to achieve these goals. In this blog we cover the steps needed to setup Satellite 6 to deploy RHEL Atomic Hosts within your environment.
The Environment
The lab environment consists of a single Satellite 6 server running an integrated capsule providing DNS, DHCP, TFTP, Puppet CA, Puppet, and Pulp services on a dedicated network. The Satellite 6 server is hosted as a VM on a Red Hat Enterprise Virtualization environment.

The Meat and Potatoes
Step 1
Download the RHEL Atomic image from: https://access.redhat.com/downloads/content/271/ver=/rhel---7/7.1.1/x86_64/product-downloads
Step 2
Mount the .iso on the Satellite server to /var/www/html/pub/atomicpxe:
mount -o loop /var/www/html/pub/rhel-atomic-installer-7.1-1.x86_64.iso /var/www/html/pub/atomicpxe/
Step 3
Copy vmlinuz from the mounted .iso to /var/lib/tftpboot:
cp /var/www/html/pub/atomicpxe/images/pxeboot/vmlinuz /var/lib/tftpboot
Step 4
Create new PXE and provisioning templates within Satellite 6 by navigating to Hosts> Provisioning templates . Click New Templatein the upper right. RHEL Atomic Kickstart is set to provision for Type and RHEL Atomic PXE is set to PXELinux for Type.
RHEL Atomic PXE:
RHEL Atomic PXE:
DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
kernel vmlinuz
append initrd=http://10.19.12.248/pub/atomicpxe/isolinux/initrd.img repo=http://10.19.12.248/pub/atomicpxe ks=<%= foreman_url('provision')%> ksdevice=bootif network kssendmac
IPAPPEND 2
RHEL Atomic kickstart:
<%#
kind: provision
name: RHEL Atomic Kickstart
%>
lang en_US.UTF-8
keyboard us
timezone America/New_York
rootpw <redacted>
clearpart --all --initlabel
part /boot --size=300 --fstype="ext4"
part pv.01 --grow
volgroup atomicos pv.01
logvol / --size=3000 --fstype="xfs" --name=root --vgname=atomicos
bootloader --timeout=3
ostreesetup --nogpg --osname=rhel-atomic-host --remote=rhel-atomic-host --url=file:///install/ostree --ref=rhel-atomic-host/7/x86_64/standard
services --disabled cloud-init,cloud-config,cloud-final,cloud-init-local
%post
(
# report success back to satellite
# TODO: move to atomic register snippet
curl -s -o /dev/null --insecure <%= foreman_url %>
) 2>&1 | tee /mnt/sysimage/root/install.post.log
exit 0
%end
reboot


Step 5
Within the Satellite UI, select the organization and location under Any Context in the upper left. Navigate to Hosts> Installation Mediaand click New Medium.Provide a name and path to the install image.
For this environment the path is: http://
Associate the Operating system type as Red Hat.

Step 6
Navigate to Hosts> Operating Systemsand select New Operating System. For the reference environment the following values are used:
- Name: RHELAtomic
- Partion Table: Kickstart default
- Installation Media: RHEL Atomic (created in Step 4)
- Templates: RHEL Atomic PXE and RHEL Atomic Kickstart (created in Step 3)

Step 7
Provision a new baremetal host by navigating to Hosts > New Hosts. Supply the appropriate information for the environment and select the RHEL Atomic operating system and associated provisioning templates by clicking the Resolve button. (created in Step 5)

Touchdown!
By following the listed steps you are now successfully able to provision RHEL Atomic Hosts from your Satellite 6 server. The hosts will register back to the server and be listed under Hosts> All hosts.

Additional Items
Re-provisioning
In some instances it may be necessary to re-build an already deployed host. To perform this step, navigate to Hosts > All hosts and select the desired host from the list. In the upper right select Build. Reboot the host and it will re-provision based on previous settings used.
Enhanced functionality
In future releases of Satellite 6, additional support will be added for RHEL Atomic Hosts to include containerization of the katello-agent, ostree updates, and tighter integration for provisioning to name a few. Stay tuned!

Comments
I will try this out later. Is there any template sample for rhev / openshift ?
Thanks,
Martin
Hi Martin,
There is a soon to be published reference architecture that will cover deploying OSE 2.2 from Sat 6 via puppet onto RHEV.
Brett
There appears to be a serious lack of clear information about RHEL Atomic support in Satellite 5.6/5.7. We are interested in registering Atomic systems and rolling out patches from our local Satellite 5.6 server as we do for our other RHEL 5/6/7 systems. Is this support available or are we only able to use Satellite 6 to achieve this?
It is covered here - (https://access.redhat.com/articles/rhel-atomic-getting-started#entitlements):
"Note: Red Hat Enterprise Linux Atomic Host works only with Red Hat Subscription Manager (RHSM). Red Hat Enterprise Linux Atomic Host does not work with RHN."
Thus, RHN Classic & Satellite 5.x are unsupported.
A point was brought up regarding the following line in the RHEL Atomix PXE provisioning template:
"kernel vmlinuz"
Where does this come from and where does it live?
The answer is vmlinuz is located in /var/lib/tftpboot and was copied from the RHEL Atomic image prior to deployment.
I made a few changes to get this to work. I loopback mounted the Atomic ISO at /var/www/html/pub/atomic as instructed then did the following.
1. cp /var/www/html/pub/atomic/isolinux/vmlinuz /var/lib/tftpboot/vmlinuz_atomic
2. Edited the PXElinux template to contain the lines:
kernel vmlinuz_atomic
append initrd=http://sat6.faa.redhat.com/pub/atomic/isolinux/initrd.img repo=http://sat6.faa.redhat.com/pub/atomic ks=<%= foreman_url('provision')%> ksdevice=bootif network kssendmac
ksdevice=bootif network kssendmac
3. Edited the kickstart template to contain the line:
rootpw --iscrypted <%= root_pass %>
I had to change the installation media to http://$SATELLITESERVER/pub/atomic/isolinux , but otherwise great tutorial!
Updated to resolve previous descrepancies and newer versions used. :)
I can use subscription manager with my Red Hat Satellite 5.7 and i have RHEL 7 Server channel synced. Can I build RHEL 7 Atomic Host with my Satellite? How can this be accomplished? Does any one have a guide?
Thanks Brett,
I'm curious about the future functionality, specifically ostree updates. I saw that Satellite 6.1 was recently made available -- was ostree management included, or are we still waiting for additional functionality to be built?
Thanks,
John
Hi John,
In flight. :)
Thanks!
Brett
I am currently looking for this capability in Satellite 6.x, can you confirm if patching Atomic Host using ostree is going to be supported in Satellite 6.2?
Hello,
Any ideas how we could run a cloud-init style script after this to setup some users etc. And setup the katello-agent etc. Which is what I do with deployments on OpenStack for example ?
Thanks
Paul