vagrant/plugins/provisioners/ansible/cap/guest/redhat/ansible_install.rb

49 lines
1.6 KiB
Ruby

require_relative "../facts"
require_relative "../pip/pip"
module VagrantPlugins
module Ansible
module Cap
module Guest
module RedHat
module AnsibleInstall
def self.ansible_install(machine, install_mode, ansible_version, pip_args)
case install_mode
when :pip
pip_setup machine
Pip::pip_install machine, "ansible", ansible_version, pip_args, true
when :pip_args_only
pip_setup machine
Pip::pip_install machine, "", "", pip_args, false
else
ansible_rpm_install machine
end
end
private
def self.ansible_rpm_install(machine)
rpm_package_manager = Facts::rpm_package_manager(machine)
epel = machine.communicate.execute "#{rpm_package_manager} repolist epel | grep -q epel", error_check: false
if epel != 0
machine.communicate.sudo 'sudo rpm -i https://dl.fedoraproject.org/pub/epel/epel-release-latest-`rpm -E %dist | sed -n \'s/.*el\([0-9]\).*/\1/p\'`.noarch.rpm'
end
machine.communicate.sudo "#{rpm_package_manager} -y --enablerepo=epel install ansible"
end
def self.pip_setup(machine)
rpm_package_manager = Facts::rpm_package_manager(machine)
machine.communicate.sudo("#{rpm_package_manager} -y install curl gcc libffi-devel openssl-devel python-crypto python-devel python-setuptools")
Pip::get_pip machine
end
end
end
end
end
end
end