turkenh.provision_docker

构建状态

provision_docker

这是一个 Ansible 角色,用于为每个在剧本中使用的清单主机创建和启动 Docker 容器。非常适合测试。

博客文章 介绍了如何使用 provision_docker 来测试角色。

推荐的 Docker 镜像:

chrismeyers/centos6
chrismeyers/centos7
chrismeyers/ubuntu12.04
ubuntu-upstart:14.04

注意: 上述镜像的 Dockerfiles 旨在运行初始化系统和 openssh。

示例剧本

使用 Travis-CI 进行测试

查看 .travis.yml 以了解如何使用 travis-ci 测试你的角色。

Mac OS X + docker-machine + VirtualBox

provision_docker 依赖于能够通过 ssh 访问容器。因此,容器的 IP 必须可访问(必须存在路由)。如果你在 OS X 上使用 Docker 工具箱和 VirtualBox,容器将无法路由到主机。运行以下命令为客机 VM 中的容器添加路由。

/usr/sbin/scutil -w State:/Network/Interface/vboxnet0/IPv4 -t 0
sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway $(docker-machine ip)

该路由不会在重启后保留。要使更改持久化,请编辑 /Library/LaunchDaemons/com.docker.route.plist

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>
<plist version='1.0'>
<dict>
  <key>Label</key>
  <string>com.docker.route</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <!-- 你需要根据你的设置调整 vboxnet0,使用 ifconfig 查找 -->
    <string>/usr/sbin/scutil -w State:/Network/Interface/vboxnet0/IPv4 -t 0;sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway 192.168.99.100</string>
  </array>
  <key>KeepAlive</key>
  <false/>
  <key>RunAtLoad</key>
  <true/>
  <key>LaunchOnlyOnce</key>
  <true/>
</dict>
</plist>

Mac OS X + docker-machine + VMware Fusion

sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway $(docker-machine ip default)

相似工作

关于项目

Provision docker containers using inventory.

安装
ansible-galaxy install turkenh.provision_docker
许可证
Unknown
下载
79
拥有者