Ansible playbook to install list of packages on Redhat or CentOS Linux post OS install.

Here i will show you a sample playbook you can use to install a list of packages in linux.

This is a sample playbook we use to install various packages after OS install.

- hosts: all
  name: NGELinux KVM post config 
  gather_facts: yes
  become: yes

    - virt-install
    - libvirt
    - vmfs-tools
    - glibc.i686
    - iptables-services
    - cloudstack-agent
    - monsoon-cloudstack-plugins-agent
    - qemu-img-ev
    - qemu-kvm-common-ev
    - qemu-kvm-ev
    - qemu-kvm-tools-ev

  - name: Check the kernel version is qualified
    fail: msg="The host is not built with the NGELinuxKVM ksmeta, please reimage and retry"
    failed_when: ansible_kernel != "3.10.0-863.14.8.el7.x86_64"
    changed_when: ansible_kernel == "3.10.0-863.14.8.el7.x86_64"
    - kernel

  - name: Install additional packages for kvm
    yum: name="{{ packages }}" enablerepo="OL7-Optional*,nge-*"
    register: yum_install
    failed_when: yum_install.rc > 0 and "Cannot open" in yum_install.stderr
    changed_when: yum_install.rc == 0
    - packages

  - name: update grub config for nested hypervisor
    lineinfile: path=/etc/default/grub regexp='^GRUB_CMDLINE_LINUX=\"(.*(?<!kvm-intel.nested=1))\"' line='GRUB_CMDLINE_LINUX="\1 kvm-intel.nested=1"' state=present backrefs=True
    - nestconf

  - name: update kvm config for nested hypervisor
    lineinfile: path=/etc/modprobe.d/kvm.conf regexp='#options kvm_intel nested=1' line='options kvm_intel nested=1' state=present backrefs=True
    - nestconf

It is not tough to understand the playbook.

We have hosts: “all” to include all hosts mentioned in file, and packages mention all the list of packages we need to install, & tasks mention the list of tasks we want to do.

Please post your questions with parts you fail to understand so that i can post the answers.

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments