Project Atomic hosts are built from standard RPM packages which have been composed into filesystem trees using rpm-ostree. This post provides method for automation of Building Atomic host (Creating new trees).
- Fedora Atomic QCOW2 Image : Fedora-Atomic.
- Make sure that Ansible is installed on your system. Note that I am using Fedora-Workstation.
Clone the Git repo on your working machine Build-Atomic-Host.
$ git clone https://github.com/trishnaguha/build-atomic-host.git $ cd build-atomic-host
Create VM from the QCOW2 Image
The following creates VM from QCOW2 Image where username is
atomic-user and password is
atomic-nodein the instance name.
$ sudo sh create-vm.sh atomic-node /path/to/fedora-atomic25.qcow2 # For example: /var/lib/libvirt/images/Fedora-Atomic-25-20170131.0.x86_64.qcow2
Start HTTP Server
The tree is made available via web server. The following playbook creates directory structure, initializes OSTree repository and starts the HTTP server.
$ ansible-playbook httpserver.yml --ask-sudo-pass
ip addr to check IP Address of the HTTP server.
Give OSTree a name and add HTTP Server IP Address
Replace the variables given in vars/atomic.yml with OSTree name and HTTP Server IP Address.
# Variables for Atomic host atomicname: my-atomic httpserver: 192.168.122.1
my-atomic is OSTree name and
192.168.122.1 is HTTP Server IP Address.
The following playbook installs requirements, starts HTTP Server, composes OSTree, performs SSH-setup and rebases on created Tree.
$ ansible-playbook main.yml --ask-sudo-pass
Check IP Address of the Atomic instance
The following command returns the IP Address of the running Atomic instance
$ sudo virsh domifaddr atomic-node
Now SSH to the Atomic Host and reboot it so that it can reboot in to the created OSTree:
$ ssh atomic-user@<atomic-hostIP> $ sudo systemctl reboot
Verify: SSH to the Atomic Host
Wait for 10 minutes, You may want to go for a Coffee now.
$ ssh firstname.lastname@example.org [atomic-user@atomic-node ~]$ sudo rpm-ostree status State: idle Deployments: ● my-atomic:fedora-atomic/25/x86_64/docker-host Version: 25.1 (2017-02-07 05:34:46) Commit: 15b70198b8ec7fd54271f9672578544ff03d1f61df8d7f0fa262ff7519438eb6 OSName: fedora-atomic fedora-atomic:fedora-atomic/25/x86_64/docker-host Version: 25.51 (2017-01-30 20:09:59) Commit: f294635a1dc62d9ae52151a5fa897085cac8eaa601c52e9a4bc376e9ecee11dd OSName: fedora-atomic
Now you have the Updated Tree.
Shout-Out for the following folks:
- Gerard Braad who mentored me for the project.
- Jonathon Lebon who demonstrated Building Atomic host workshop in DevConf.CZ, 2017 at Brno. His slides are here: jlebon-devconf-slides.
My future post will have customizing packages (includes addition/deletion) for OSTree.