Add RHEL 7.3 to ansible-test and CI. (#26550)
* Add support for RHEL to ansible-test. * Enable RHEL 7.3 on Shippable.
This commit is contained in:
parent
941a32a632
commit
4a013d6d69
6 changed files with 51 additions and 9 deletions
|
@ -20,6 +20,8 @@ matrix:
|
||||||
- env: TEST=freebsd/10.3-STABLE
|
- env: TEST=freebsd/10.3-STABLE
|
||||||
- env: TEST=freebsd/11.0-STABLE
|
- env: TEST=freebsd/11.0-STABLE
|
||||||
|
|
||||||
|
- env: TEST=rhel/7.3
|
||||||
|
|
||||||
- env: TEST=windows/1
|
- env: TEST=windows/1
|
||||||
- env: TEST=windows/2
|
- env: TEST=windows/2
|
||||||
- env: TEST=windows/3
|
- env: TEST=windows/3
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
freebsd/10.3-STABLE
|
freebsd/10.3-STABLE
|
||||||
freebsd/11.0-STABLE
|
freebsd/11.0-STABLE
|
||||||
osx/10.11
|
osx/10.11
|
||||||
|
rhel/7.3
|
||||||
|
|
|
@ -58,6 +58,7 @@ class AnsibleCoreCI(object):
|
||||||
'aws',
|
'aws',
|
||||||
'windows',
|
'windows',
|
||||||
'freebsd',
|
'freebsd',
|
||||||
|
'rhel',
|
||||||
'vyos',
|
'vyos',
|
||||||
'junos',
|
'junos',
|
||||||
'ios',
|
'ios',
|
||||||
|
|
|
@ -116,6 +116,8 @@ class ManagePosixCI(object):
|
||||||
self.become = ['su', '-l', 'root', '-c']
|
self.become = ['su', '-l', 'root', '-c']
|
||||||
elif self.core_ci.platform == 'osx':
|
elif self.core_ci.platform == 'osx':
|
||||||
self.become = ['sudo', '-in', 'PATH=/usr/local/bin:$PATH']
|
self.become = ['sudo', '-in', 'PATH=/usr/local/bin:$PATH']
|
||||||
|
elif self.core_ci.platform == 'rhel':
|
||||||
|
self.become = ['sudo', '-in', 'bash', '-c']
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
"""Start instance and wait for it to become ready and respond to an ansible ping."""
|
"""Start instance and wait for it to become ready and respond to an ansible ping."""
|
||||||
|
|
|
@ -28,21 +28,39 @@ if [ "${platform}" = "freebsd" ]; then
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
zip
|
zip
|
||||||
|
elif [ "${platform}" = "rhel" ]; then
|
||||||
|
yum update -y
|
||||||
|
|
||||||
|
yum install -y \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
mercurial \
|
||||||
|
python-devel \
|
||||||
|
python-jinja2 \
|
||||||
|
python-virtualenv \
|
||||||
|
python2-cryptography \
|
||||||
|
rubygems \
|
||||||
|
subversion \
|
||||||
|
unzip \
|
||||||
|
|
||||||
|
pip --version 2>/dev/null || curl --silent --show-error https://bootstrap.pypa.io/get-pip.py | python
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pip install virtualenv
|
if [ "${platform}" = "freebsd" ] || [ "${platform}" = "osx" ]; then
|
||||||
|
pip install virtualenv
|
||||||
|
|
||||||
# Tests assume loopback addresses other than 127.0.0.1 will work.
|
# Tests assume loopback addresses other than 127.0.0.1 will work.
|
||||||
# Add aliases for loopback addresses used by tests.
|
# Add aliases for loopback addresses used by tests.
|
||||||
|
|
||||||
for i in 3 4 254; do
|
for i in 3 4 254; do
|
||||||
ifconfig lo0 alias "127.0.0.${i}" up
|
ifconfig lo0 alias "127.0.0.${i}" up
|
||||||
done
|
done
|
||||||
|
|
||||||
ifconfig lo0
|
ifconfig lo0
|
||||||
|
fi
|
||||||
|
|
||||||
# Since tests run as root, we also need to be able to ssh to localhost as root.
|
# Since tests run as root, we also need to be able to ssh to localhost as root.
|
||||||
sed -i '' 's/^# *PermitRootLogin.*$/PermitRootLogin yes/;' /etc/ssh/sshd_config
|
sed -i= 's/^# *PermitRootLogin.*$/PermitRootLogin yes/;' /etc/ssh/sshd_config
|
||||||
|
|
||||||
if [ "${platform}" = "freebsd" ]; then
|
if [ "${platform}" = "freebsd" ]; then
|
||||||
# Restart sshd for configuration changes and loopback aliases to work.
|
# Restart sshd for configuration changes and loopback aliases to work.
|
||||||
|
@ -65,5 +83,9 @@ fi
|
||||||
cat << EOF > ~/.bashrc
|
cat << EOF > ~/.bashrc
|
||||||
alias ls='ls -G'
|
alias ls='ls -G'
|
||||||
export PS1='\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
export PS1='\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
cd ~/ansible/
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Make sure ~/ansible/ is the starting directory for interactive shells.
|
||||||
|
if [ "${platform}" = "osx" ]; then
|
||||||
|
echo "cd ~/ansible/" >> ~/.bashrc
|
||||||
|
fi
|
||||||
|
|
14
test/utils/shippable/rhel.sh
Executable file
14
test/utils/shippable/rhel.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash -eux
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
declare -a args
|
||||||
|
IFS='/:' read -ra args <<< "${TEST}"
|
||||||
|
|
||||||
|
platform="${args[0]}"
|
||||||
|
version="${args[1]}"
|
||||||
|
target="posix/ci/"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
ansible-test integration --color -v --retry-on-error "${target}" --remote "${platform}/${version}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
|
||||||
|
--exclude "posix/ci/cloud/"
|
Loading…
Reference in a new issue