[英]Using Ansible to install Docker
前段时间我问了一个关于 Ansible 和 Docker 的问题,得到了这个很好的答案。 我现在试图更好地理解这个答案。 本质上,我有一堆 Ubuntu 14.04 虚拟机,我希望 Ansible 在所有这些虚拟机上安装/维护 Docker。
我的 Ansible 项目:
myansible01.example.com:/opt/ansible/
site.yml
allservers.yml
roles/
common/
tasks/
main.yml
site.yml
在哪里:
---
# file: site.yml
- include: allservers.yml
allservers.yml
在哪里:
---
# file: allservers.yml
- hosts: all
user: {{ privileged_user }}
gather_facts: false
roles:
- common
而roles/common/tasks/main.yml
在哪里:
---
# file: roles/common/tasks/main.yml
- name: Add docker apt keys
apt_key: keyserver=keyserver.ubuntu.com id=36A1D7869245C8950F966E92D8576A8BA88D21E9
- name: Update apt
apt_repository: repo='deb https://get.docker.com docker main' state=present
- name: Install Docker
apt: pkg=lxc-docker update_cache=yes
最后,我的/etc/ansible/hosts
:
[allservers]
server01.example.com
server02.example.com
server03.example.com
...etc.
server49.example.com
server50.example.com
这里有几个问题:
ansible-playbook site.yml -f 10
?privileged_user
“注入”到上述命令中?apt_key
docs ,我们正在从 Ubuntu 存储库中获取一个apt_key
,但是这个长密钥从何而来? 这在安装 Docker 中起什么作用(我问是因为如果你去Docker Ubuntu 安装页面,它根本没有提到这些apt_keys
)?以更合乎逻辑的顺序:
为什么是apt-key
?
apt-key
用于管理apt
用于验证包(如docker )的密钥列表。 已使用这些密钥进行身份验证的包将被视为受信任的。 当您添加一个存储库时,它会很有用,其中包含您想要的包的更新/更好/最新版本。
(来源:apt-key 的手册页)
如果不先添加repo的key, apt
将无法获取包,并且会哭“W: GPG error: ... 以下签名无法验证,因为公钥是不可用:NO_PUBKEY 任何键号” 。 所以这基本上是为了让您可以获得软件包并安装它。
在docker Ubuntu 安装页面中,注释中的第3点明确提到了apt-key
:
curl -sSL https://get.docker.com/gpg | sudo apt-key add -
变量
要在您的配置中注入{{ privileged_user }}
:您可以通过在<INVENTORY_FILE_LOCATION>/group_vars/all
定义privileged_user
来使用全局变量,如下所示:
---
# Your user
privileged_user: "root"
如果此group_vars/all
文件不存在,请创建它。
注意:默认清单文件位置是
/etc/ansible/hosts
,但在 Mac OS X 上是/usr/local/etc/ansible/hosts
(有关更多信息,请参见此处)
运行剧本
然后,要运行您的剧本,请执行以下操作:
ansible-playbook -l server49.example.com allservers.yml -v
-l
是如果你想特别限制一个服务器,但你可以省略它
-v
是如果你想要一个详细的输出(或-vv
, -vvv
...)
编辑:启动 docker 守护进程
如果您想确保在此之后启动 docker 守护程序,我建议无论如何都重新启动它:
- name: Start Docker
service: name=docker state=restarted
根据发行版的不同,它可能之前已自动启动,但根据我在此处的文档中的理解, “安装 Docker 后,您将需要启动 Docker 守护程序” 。
而且......你很高兴去;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.