This collection provides Ansible roles you can use to perform conversion using the Convert2RHEL framework. Use these roles as the foundation of your conversion automation solution.
Please check the release section of the repository to find information about the latest updates and publication to the Ansible Galaxy.
These are the roles included in the collection. Follow the links below to see the detailed documentation and example playbooks for each role.
analysis
- executes the convert2rhel analysis phasecommon
- used for local logging, mutex locking, and common varshandle_c2r_report
- reads convert2rhel results and checks for inhibitorsconvert
- executes the convert2rhel OS conversion
Example playbooks can be found here.
You can install the collection from Ansible Galaxy by running ansible-galaxy collection install infra.convert2rhel
.
You can also include it in a requirements.yml
file and install it with ansible-galaxy collection install -r requirements.yml
, using the format:
---
collections:
- name: infra.convert2rhel
Note that if you install the collection from Ansible Galaxy, it will not be upgraded automatically when you upgrade the ansible
package. To upgrade the collection to the latest available version, run the following command:
ansible-galaxy collection install infra.convert2rhel --upgrade
You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version 1.0.0
:
ansible-galaxy collection install infra.convert2rhel:==1.0.0
See Using Ansible collections for more details.
We are a fledgling community and welcome any new contributors. Get started by opening an issue or pull request. Refer to our contribution guide for more information.
For testing, you have two options. Use manually provisioned machine and run the playbook manually or use the automated
way using Makefile
and molecule
plugin.
- Provision machine (e.g. using vagrant). This can be done by
vagrant init eurolinux-vagrant/centos-7
or by using Vagrantfile. Capture it's IP and directory where you are running this command. - Move to
infra.convert2rhel
and create needed folders for ansible by runningmake create-folder-for-test
. This will create structure of directories ansible needs. Remember, you need to run this command each time you change something in the project. - Run
export ANSIBLE_COLLECTIONS_PATH=$(pwd)
to set where should ansible look for the expected dir structure. - Create file in which you will specify hosts to run the ansible playbook.
E.g. the file is created in
playbook/
calledhosts
and contain:
[testing]
<IP-of-the-machine> ansible_python_interpreter=/usr/bin/python2.7
Note: the specified ansible_python_interpreter
is mainly for easier debugging if you have the correct version of
ansible-core
(2.16.11), without this you can get a bit confusing error message.
Note: if you want to subscribe the system, you can replace the config file by credentials you have
in the analysis/tasks/analysis-c2r.yml
or convert/tasks/main.yml
- Run the ansible playbook you want using:
ansible-playbook --private-key <path-where-vagrant-was-called>/.vagrant/machines/default/libvirt/private_key -i <specified-hosts> <playbook-path> -u root -vv
e.g.
ansible-playbook --private-key ~/vagrant-box/vagrant/.vagrant/machines/default/libvirt/private_key -i playbooks/hosts playbooks/analysis.yml -u root -vv
TBD
Please open a new issue for any bugs or security vulnerabilities you may encounter. We also invite you to open an issue if you have ideas on how we can improve the solution or want to make a suggestion for enhancment.
This Ansible collection is just one building block of our larger initiative to make Convert2RHEL conversion automation that works at enterprise scale. Learn more about our end-to-end approach for automating conversions in these blog posts.
See the changelog.
MIT
See LICENSE to see the full text.