class Kitchen::Provisioner::Ansible::Os::Debian

Public Instance Methods

ansible_debian_version() click to toggle source
# File lib/kitchen/provisioner/ansible/os/debian.rb, line 28
def ansible_debian_version
  if @config[:ansible_version] == 'latest' || @config[:ansible_version] == nil
    ''
  else
    "=#{@config[:ansible_version]}"
  end
end
install_command() click to toggle source
# File lib/kitchen/provisioner/ansible/os/debian.rb, line 36
          def install_command
            <<-INSTALL

            if [ ! $(which ansible) ]; then
              #{update_packages_command}

              ## Install apt-utils to silence debconf warning: http://serverfault.com/q/358943/77156
              ## Install dirmngr to handle GPG key management for stretch, addressing https://github.com/neillturner/kitchen-ansible/issues/257
              #{sudo_env('apt-get')} -y install apt-utils git dirmngr

              ## Fix debconf tty warning messages
              export DEBIAN_FRONTEND=noninteractive

              if [ -f /etc/os-release ] && [ `grep 'ID=debian' /etc/os-release` ]; then
                #{sudo_env('echo')} "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list
                #{sudo_env('apt-key')} adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
              else
                ## 13.10, 14.04 include add-apt-repository in software-properties-common
                #{sudo_env('apt-get')} -y install software-properties-common

                ## 10.04, 12.04 include add-apt-repository in
                if [apt-cache pkgnames | grep -q 'python-software-properties']; then
                   #{sudo_env('apt-get')} -y install python-software-properties
                fi

                ## 10.04 version of add-apt-repository doesn't accept --yes
                ## later versions require interaction from user, so we must specify --yes
                ## First try with -y flag, else if it fails, try without.
                ## "add-apt-repository: error: no such option: -y" is returned but is ok to ignore, we just retry
                ## There is no official Ubuntu 20.04 ansible release in the ppa, but Ubuntu has a package with the latest 2.9 Ansible
                ## This "fixes" issue #321 for now
                if ! `grep -q 'VERSION_ID=\"20.04\"' /etc/os-release`; then
                  #{sudo_env('add-apt-repository')} -y #{@config[:ansible_apt_repo]} || #{sudo_env('add-apt-repository')} #{@config[:ansible_apt_repo]}
                fi
              fi
              #{sudo_env('apt-get')} update
              #{sudo_env('apt-get')} -y install ansible#{ansible_debian_version}
            fi
            INSTALL
          end
update_packages_command() click to toggle source
# File lib/kitchen/provisioner/ansible/os/debian.rb, line 24
def update_packages_command
  @config[:update_package_repos] ? "#{sudo_env('apt-get')} update" : nil
end