Merge branch 'ubuntu_1204_fix_travis_builds'
This commit is contained in:
commit
084f09a789
37
.travis.yml
37
.travis.yml
|
@ -17,22 +17,16 @@ env:
|
||||||
MONGODB_VERSION=2.6
|
MONGODB_VERSION=2.6
|
||||||
- >
|
- >
|
||||||
DISTRIBUTION=ubuntu-upstart
|
DISTRIBUTION=ubuntu-upstart
|
||||||
DIST_VERSION=12.04
|
DIST_VERSION=12.04-builded
|
||||||
MONGODB_VERSION=3.2
|
MONGODB_VERSION=3.2
|
||||||
- >
|
- >
|
||||||
DISTRIBUTION=ubuntu-upstart
|
DISTRIBUTION=ubuntu-upstart
|
||||||
DIST_VERSION=12.04
|
DIST_VERSION=12.04-builded
|
||||||
MONGODB_VERSION=3.0
|
MONGODB_VERSION=3.0
|
||||||
- >
|
- >
|
||||||
DISTRIBUTION=ubuntu-upstart
|
DISTRIBUTION=ubuntu-upstart
|
||||||
DIST_VERSION=12.04
|
DIST_VERSION=12.04-builded
|
||||||
MONGODB_VERSION=2.6
|
MONGODB_VERSION=2.6
|
||||||
# - >
|
|
||||||
# distribution=ubuntu-upstart
|
|
||||||
# version=12.04
|
|
||||||
# - >
|
|
||||||
# distribution=debian
|
|
||||||
# version=7
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
|
@ -44,17 +38,22 @@ before_install:
|
||||||
- sudo apt-get update
|
- sudo apt-get update
|
||||||
- sudo apt-get install ansible python-pip -y
|
- sudo apt-get install ansible python-pip -y
|
||||||
- sudo pip install docker-py==1.5.0
|
- sudo pip install docker-py==1.5.0
|
||||||
# Pull docker image
|
# Pull docker image or build it
|
||||||
- sudo docker pull ${DISTRIBUTION}:${DIST_VERSION}
|
- >
|
||||||
|
if [ -f tests/Dockerfile.${DISTRIBUTION}_${DIST_VERSION} ]; then
|
||||||
|
sudo docker build --rm=true --file=tests/Dockerfile.${DISTRIBUTION}_${DIST_VERSION}
|
||||||
|
--tag ${DISTRIBUTION}:${DIST_VERSION} tests; else sudo docker pull ${DISTRIBUTION}:${DIST_VERSION}; fi
|
||||||
- sudo ln -s ${PWD} /etc/ansible/roles/greendayonfire.mongodb
|
- sudo ln -s ${PWD} /etc/ansible/roles/greendayonfire.mongodb
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# Test 1
|
# Test 1
|
||||||
- sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e mongodb_version=${MONGODB_VERSION}
|
- >
|
||||||
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e mongodb_version=${MONGODB_VERSION}
|
||||||
|
-e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
# Idempotence test
|
# Idempotence test
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e mongodb_version=${MONGODB_VERSION}
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e mongodb_version=${MONGODB_VERSION}
|
||||||
| grep -q 'changed=0.*failed=0'
|
-e image_name=${DISTRIBUTION}:${DIST_VERSION} | grep -q 'changed=0.*failed=0'
|
||||||
&& (echo 'Idempotence test: pass' && exit 0)
|
&& (echo 'Idempotence test: pass' && exit 0)
|
||||||
|| (echo 'Idempotence test: fail' && exit 1)
|
|| (echo 'Idempotence test: fail' && exit 1)
|
||||||
|
|
||||||
|
@ -63,11 +62,11 @@ script:
|
||||||
|
|
||||||
# Test 2
|
# Test 2
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_security_authorization='enabled'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_security_authorization='enabled'
|
||||||
# Idempotence test
|
# Idempotence test
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo1 -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_security_authorization='enabled'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_security_authorization='enabled'
|
||||||
| grep -q 'changed=0.*failed=0'
|
| grep -q 'changed=0.*failed=0'
|
||||||
&& (echo 'Idempotence test: pass' && exit 0)
|
&& (echo 'Idempotence test: pass' && exit 0)
|
||||||
|
@ -78,11 +77,11 @@ script:
|
||||||
|
|
||||||
# Test 3
|
# Test 3
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
||||||
# Idempotence test
|
# Idempotence test
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
||||||
| grep -q 'changed=0.*failed=0'
|
| grep -q 'changed=0.*failed=0'
|
||||||
&& (echo 'Idempotence test: pass' && exit 0)
|
&& (echo 'Idempotence test: pass' && exit 0)
|
||||||
|
@ -93,12 +92,12 @@ script:
|
||||||
|
|
||||||
# Test 4
|
# Test 4
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
||||||
-e mongodb_security_authorization='enabled'
|
-e mongodb_security_authorization='enabled'
|
||||||
# Idempotence test
|
# Idempotence test
|
||||||
- >
|
- >
|
||||||
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo
|
sudo ansible-playbook -i tests/hosts tests/site.yml -e target=mongo -e image_name=${DISTRIBUTION}:${DIST_VERSION}
|
||||||
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
-e mongodb_version=${MONGODB_VERSION} -e mongodb_replication_replset='testrs'
|
||||||
-e mongodb_security_authorization='enabled'
|
-e mongodb_security_authorization='enabled'
|
||||||
| grep -q 'changed=0.*failed=0'
|
| grep -q 'changed=0.*failed=0'
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
FROM ubuntu:12.04
|
||||||
|
|
||||||
|
# much of this was gleaned from https://github.com/lxc/lxc/blob/lxc-0.8.0/templates/lxc-ubuntu.in
|
||||||
|
# and then heavily modified and hacked like crazy
|
||||||
|
|
||||||
|
# we're going to want this bad boy installed so we can connect :)
|
||||||
|
RUN apt-get update && apt-get install -y ssh python
|
||||||
|
|
||||||
|
ADD builds/init-fake.conf /etc/init/fake-container-events.conf
|
||||||
|
|
||||||
|
# undo some leet hax of the base image
|
||||||
|
RUN rm /usr/sbin/policy-rc.d; \
|
||||||
|
rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl
|
||||||
|
|
||||||
|
# generate a nice UTF-8 locale for our use
|
||||||
|
RUN locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# remove some pointless services
|
||||||
|
RUN /usr/sbin/update-rc.d -f ondemand remove; \
|
||||||
|
for f in \
|
||||||
|
/etc/init/u*.conf \
|
||||||
|
/etc/init/mounted-dev.conf \
|
||||||
|
/etc/init/mounted-proc.conf \
|
||||||
|
/etc/init/mounted-run.conf \
|
||||||
|
/etc/init/mounted-tmp.conf \
|
||||||
|
/etc/init/mounted-var.conf \
|
||||||
|
/etc/init/hostname.conf \
|
||||||
|
/etc/init/networking.conf \
|
||||||
|
/etc/init/tty*.conf \
|
||||||
|
/etc/init/plymouth*.conf \
|
||||||
|
/etc/init/hwclock*.conf \
|
||||||
|
/etc/init/module*.conf\
|
||||||
|
; do \
|
||||||
|
dpkg-divert --local --rename --add "$f"; \
|
||||||
|
done; \
|
||||||
|
echo '# /lib/init/fstab: cleared out for bare-bones Docker' > /lib/init/fstab
|
||||||
|
|
||||||
|
# small fix for SSH in 13.10 (that's harmless everywhere else)
|
||||||
|
RUN sed -ri 's/^session\s+required\s+pam_loginuid.so$/session optional pam_loginuid.so/' /etc/pam.d/sshd
|
||||||
|
|
||||||
|
RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
# let Upstart know it's in a container
|
||||||
|
ENV container docker
|
||||||
|
|
||||||
|
# set a cheap, simple password for great convenience
|
||||||
|
RUN echo 'root:docker.io' | chpasswd
|
||||||
|
|
||||||
|
# we can has SSH
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
# pepare for takeoff
|
||||||
|
CMD ["/sbin/init"]
|
|
@ -0,0 +1,13 @@
|
||||||
|
# fake some events needed for correct startup other services
|
||||||
|
|
||||||
|
description "In-Container Upstart Fake Events"
|
||||||
|
|
||||||
|
start on startup
|
||||||
|
|
||||||
|
script
|
||||||
|
rm -rf /var/run/*.pid
|
||||||
|
rm -rf /var/run/network/*
|
||||||
|
/sbin/initctl emit stopped JOB=udevtrigger --no-wait
|
||||||
|
/sbin/initctl emit started JOB=udev --no-wait
|
||||||
|
/sbin/initctl emit runlevel RUNLEVEL=3 --no-wait
|
||||||
|
end script
|
Loading…
Reference in New Issue