diff --git a/install-ansible.sh b/install-ansible.sh index 217ec9016..27a609f16 100755 --- a/install-ansible.sh +++ b/install-ansible.sh @@ -1,6 +1,8 @@ #!/bin/bash # # THIS SCRIPT INSTALLS ANSIBLE +# DO NOT RUN IF ANSIBLE IS ALREADY INSTALLED ON YOUR SYSTEM + set -e if [[ $EUID -ne 0 ]]; then @@ -10,8 +12,23 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi +if [[ ! -x $(which lsb_release 2>/dev/null) ]]; then + echo "ERROR: lsb_release is not installed" + echo "Cannot evaluate the platform" + echo "Please install lsb_release and retry" + echo "Red Hat based Systems : yum install redhat-lsb-core" + echo "Debian based Systems : apt-get install lsb-release" + exit 1 +fi + + +# GET OS VENDOR os_VENDOR=$(lsb_release -i -s) -os_VERSION=$(lsb_release -c -s) +# GET OS MAJOR VERSION +os_VERSION=$(lsb_release -r -s | cut -d. -f 1) + +echo "*** Detected Linux $os_VENDOR $os_VERSION ***" + if [[ "Debian" =~ $os_VENDOR ]]; then apt-get update apt-get install -y python-pip python-dev git build-essential @@ -24,18 +41,28 @@ elif [[ "Ubuntu" =~ $os_VENDOR || "LinuxMint" =~ $os_VENDOR ]]; then add-apt-repository -y ppa:ansible/ansible apt-get update apt-get install -y ansible -elif [[ "RedHatEnterpriseServer" =~ $os_VENDOR || "CentOS" =~ $os_VENDOR || -r /etc/redhat-release ]]; then - rpm -q epel-release-* || rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm - yum install -y ansible - yum remove -y $(rpm -q epel-release-*) -else - if [[ ! -x $(which lsb_release 2>/dev/null) ]]; then - echo "lsb_release is not installed" - echo "Can not evaluate the platform" - exit 1 +elif [[ "RedHatEnterpriseServer" =~ $os_VENDOR || "CentOS" =~ $os_VENDOR ]]; then + if ( rpm -q epel-release &> /dev/null ); then + echo "*** WARNING : EPEL Already installed - We won't remove it but be aware that it might conflict if you plan using other Ceph repo source ***" + echo "*** Installing Ansible from EPEL... ***" + yum install -y ansible + else + echo "*** Installing EPEL... ***" + rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-${os_VERSION}.noarch.rpm + echo "*** Installing Ansible from EPEL... ***" + yum install -y ansible + echo "*** Removing EPEL... ***" + yum remove -y epel-release fi - echo "Unsupported platform ${os_VENDOR}: ${os_VERSION}" - echo "Please send a pull-request or open an issue" - echo "on https://github.com/ceph/ceph-ansible/" +else + echo "*** Unsupported platform ${os_VENDOR}: ${os_VERSION} ***" + echo "*** Please send a pull-request or open an issue ***" + echo "*** on https://github.com/ceph/ceph-ansible/ ***" exit 1 fi + +if ( ansible --version &> /dev/null ); then + echo "*** $(ansible --version | head -n1) installed successfully ***" +else + echo "Something went wrong, please have a look at the script output" +fi