summaryrefslogtreecommitdiffstats
path: root/xci/file
diff options
context:
space:
mode:
Diffstat (limited to 'xci/file')
-rw-r--r--xci/file/install-ansible.sh69
1 files changed, 41 insertions, 28 deletions
diff --git a/xci/file/install-ansible.sh b/xci/file/install-ansible.sh
index 2661eea1..75ae1d82 100644
--- a/xci/file/install-ansible.sh
+++ b/xci/file/install-ansible.sh
@@ -7,34 +7,42 @@ set -eu
declare -A PKG_MAP
+# workaround: for latest bindep to work, it needs to use en_US local
+export LANG=c
+
CHECK_CMD_PKGS=(
+ gcc
libffi
libopenssl
+ lsb-release
+ make
net-tools
python-devel
+ python
+ venv
+ wget
)
source /etc/os-release || source /usr/lib/os-release
-
case ${ID,,} in
*suse)
OS_FAMILY="Suse"
- INSTALLER_CMD="sudo -H -E zypper install -y"
+ INSTALLER_CMD="sudo -H -E zypper install -y --no-recommends"
CHECK_CMD="zypper search --match-exact --installed"
PKG_MAP=(
[gcc]=gcc
- [git]=git
[libffi]=libffi-devel
[libopenssl]=libopenssl-devel
+ [lsb-release]=lsb-release
+ [make]=make
[net-tools]=net-tools
[python]=python
[python-devel]=python-devel
[venv]=python-virtualenv
[wget]=wget
- [openssl]=openssl
)
EXTRA_PKG_DEPS=( python-xml )
- sudo zypper -n ref
+ sudo zypper -n ref
# NOTE (cinerama): we can't install python without removing this package
# if it exists
if $(${CHECK_CMD} patterns-openSUSE-minimal_base-conflicts &> /dev/null); then
@@ -47,43 +55,45 @@ case ${ID,,} in
export DEBIAN_FRONTEND=noninteractive
INSTALLER_CMD="sudo -H -E apt-get -y install"
CHECK_CMD="dpkg -l"
- PKG_MAP=( [gcc]=gcc
- [git]=git
- [libffi]=libffi-dev
- [libopenssl]=libssl-dev
- [net-tools]=net-tools
- [python]=python-minimal
- [python-devel]=libpython-dev
- [venv]=python-virtualenv
- [wget]=wget
- [openssl]=openssl
- )
+ PKG_MAP=(
+ [gcc]=gcc
+ [libffi]=libffi-dev
+ [libopenssl]=libssl-dev
+ [lsb-release]=lsb-release
+ [make]=make
+ [net-tools]=net-tools
+ [python]=python-minimal
+ [python-devel]=libpython-dev
+ [venv]=python-virtualenv
+ [wget]=wget
+ )
EXTRA_PKG_DEPS=()
- sudo apt-get update
+ sudo apt-get update
;;
- rhel|centos|fedora)
+ rhel|fedora|centos)
OS_FAMILY="RedHat"
PKG_MANAGER=$(which dnf || which yum)
INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -y install"
CHECK_CMD="rpm -q"
PKG_MAP=(
[gcc]=gcc
- [git]=git
[libffi]=libffi-devel
[libopenssl]=openssl-devel
+ [lsb-release]=redhat-lsb
+ [make]=make
[net-tools]=net-tools
[python]=python
[python-devel]=python-devel
[venv]=python-virtualenv
[wget]=wget
- [openssl]=openssl
)
sudo yum updateinfo
EXTRA_PKG_DEPS=()
- ;;
+ sudo yum update --assumeno
+ ;;
- *) echo "ERROR: Supported package manager not found. Supported: apt,yum,zypper"; exit 1;;
+ *) echo "ERROR: Supported package manager not found. Supported: apt, dnf, yum, zypper"; exit 1;;
esac
if ! $(python --version &>/dev/null); then
@@ -92,13 +102,14 @@ fi
if ! $(gcc -v &>/dev/null); then
${INSTALLER_CMD} ${PKG_MAP[gcc]}
fi
-if ! $(git --version &>/dev/null); then
- ${INSTALLER_CMD} ${PKG_MAP[git]}
-fi
if ! $(wget --version &>/dev/null); then
${INSTALLER_CMD} ${PKG_MAP[wget]}
fi
+if ! $(python -m virtualenv --version &>/dev/null); then
+ ${INSTALLER_CMD} ${PKG_MAP[venv]}
+fi
+
for pkg in ${CHECK_CMD_PKGS[@]}; do
if ! $(${CHECK_CMD} ${PKG_MAP[$pkg]} &>/dev/null); then
${INSTALLER_CMD} ${PKG_MAP[$pkg]}
@@ -143,7 +154,9 @@ if ! which pip; then
fi
PIP=$(which pip)
-
-${PIP} install --user "pip>6.0"
-
+echo "Using pip: $(${PIP} --version)"
+sudo -H -E ${PIP} install --upgrade virtualenv
+sudo -H -E ${PIP} install --upgrade pip
+# upgrade setuptools, as latest version is needed to install some projects
+sudo -H -E ${PIP} install --upgrade setuptools
${PIP} install --user --upgrade ansible==$XCI_ANSIBLE_PIP_VERSION