gpt4 book ai didi

docker - 使用 Ansible 安装 Docker

转载 作者:行者123 更新时间:2023-12-04 18:04:42 25 4
gpt4 key购买 nike

前段时间我问了一个关于 Ansible 和 Docker 的问题,收到了 this excellent answer .我现在正试图更好地理解这个答案。本质上,我有一堆 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 在所有 50 台服务器上安装 Docker?类似于(来自项目根目录)ansible-playbook site.yml -f 10 ?
  • 我如何“注入(inject)” privileged_user进入上述命令?
  • 为什么第一个任务“添加 docker apt 键”是必要的?根据 apt_key docs ,我们正在获取 apt_key来自 Ubuntu 存储库,但是那个长 key 是从哪里来的?这在安装 Docker 中起什么作用(我问,因为如果你去 Docker Ubuntu installation page 它根本没有提到这些 apt_keys)?
  • 为了正确安装 Docker,我还需要做什么?
  • 最佳答案

    以更合乎逻辑的顺序:

    为什么apt-key ?
    apt-key用于管理 apt 使用的 key 列表对包进行身份验证(如 docker)。已使用这些 key 进行身份验证的包将被视为受信任的。当您添加一个存储库时,它很有用,您想要的软件包的更新/更好/最新版本驻留在该存储库中。

    (来源:apt-key 的手册页)

    如果不先添加repo的key,apt拿不到包裹会哭 “W:GPG 错误:...由于公钥不可用,无法验证以下签名:NO_PUBKEY 无论 key 号” .所以这基本上是为了让你可以获取包并安装它。

    docker Ubuntu installation页面,明确提到了apt-key在点 3 在注释中:

    curl -sSL https://get.docker.com/gpg | sudo apt-key add -

    变量

    注入(inject) {{ privileged_user }}在您的配置中:您将通过定义 privileged_user 来使用全局变量在 <INVENTORY_FILE_LOCATION>/group_vars/all像那样 :
    ---
    # Your user
    privileged_user: "root"

    如果这个 group_vars/all文件不存在,创建它。

    NB : the default inventory file location is /etc/ansible/hosts, but /usr/local/etc/ansible/hosts on Mac OS X



    (见 here 以及更多信息)

    运行剧本

    然后,要运行您的剧本,请执行以下操作:
    ansible-playbook -l server49.example.com allservers.yml -v 
    -l例如,如果您想特别限制服务器,但您可以省略它
    -v是如果你想要一个详细的输出(或 -vv-vvv ...)

    编辑:启动 docker 守护进程

    如果您想确保 docker 守护程序在那之后启动,我建议无论如何都要重新启动它:
    - name: Start Docker
    service: name=docker state=restarted

    根据发行版的不同,它可能以前是自动启动的,但据我了解 docs这里,“一旦安装了 Docker,您将需要 需要 来启动 Docker 守护程序”。

    而且....你很高兴去;)

    关于docker - 使用 Ansible 安装 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714146/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com