|
|
|
@ -6,6 +6,7 @@ Build the Docker images used for testing.
|
|
|
|
|
|
|
|
|
|
import commands
|
|
|
|
|
import os
|
|
|
|
|
import tempfile
|
|
|
|
|
import shlex
|
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
|
@ -19,25 +20,36 @@ def sh(s, *args):
|
|
|
|
|
return shlex.split(s)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for base_image, name in [('debian:stretch', 'debian'),
|
|
|
|
|
('centos:6', 'centos6'),
|
|
|
|
|
('centos:7', 'centos7')]:
|
|
|
|
|
args = sh('docker run --rm -it -d %s /bin/bash', base_image)
|
|
|
|
|
|
|
|
|
|
label_by_id = {}
|
|
|
|
|
|
|
|
|
|
for base_image, label in [('debian:stretch', 'debian'),
|
|
|
|
|
('centos:6', 'centos6'),
|
|
|
|
|
('centos:7', 'centos7')]:
|
|
|
|
|
args = sh('docker run --rm -it -d -h mitogen-%s %s /bin/bash',
|
|
|
|
|
label, base_image)
|
|
|
|
|
container_id = subprocess.check_output(args).strip()
|
|
|
|
|
label_by_id[container_id] = label
|
|
|
|
|
|
|
|
|
|
with tempfile.NamedTemporaryFile() as fp:
|
|
|
|
|
fp.write('[all]\n')
|
|
|
|
|
for id_, label in label_by_id.items():
|
|
|
|
|
fp.write('%s ansible_host=%s\n' % (label, id_))
|
|
|
|
|
fp.flush()
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
subprocess.check_call(
|
|
|
|
|
cwd=BASEDIR,
|
|
|
|
|
args=sh('''
|
|
|
|
|
ansible-playbook -i %s, -c docker setup.yml -vvv
|
|
|
|
|
''', container_id)
|
|
|
|
|
args=sh('ansible-playbook -i %s -c docker setup.yml', fp.name),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
subprocess.check_call(sh('''
|
|
|
|
|
docker commit
|
|
|
|
|
--change 'EXPOSE 22'
|
|
|
|
|
--change 'CMD ["/usr/sbin/sshd", "-D"]'
|
|
|
|
|
%s
|
|
|
|
|
mitogen/%s-test
|
|
|
|
|
''', container_id, name))
|
|
|
|
|
for container_id, label in label_by_id.items():
|
|
|
|
|
subprocess.check_call(sh('''
|
|
|
|
|
docker commit
|
|
|
|
|
--change 'EXPOSE 22'
|
|
|
|
|
--change 'CMD ["/usr/sbin/sshd", "-D"]'
|
|
|
|
|
%s
|
|
|
|
|
mitogen/%s-test
|
|
|
|
|
''', container_id, label))
|
|
|
|
|
finally:
|
|
|
|
|
subprocess.check_call(sh('docker rm -f %s', container_id))
|
|
|
|
|
subprocess.check_call(sh('docker rm -f %s', ' '.join(label_by_id)))
|
|
|
|
|