本文的演示环境为 ubuntu 16.04。

先在 Ansible Galaxy 搜索 docker,由 geerlingguy 贡献的 docker role 是目前最受欢迎的:

通过 ansible-galaxy 命令可以把上面搜索到的 role 安装到本地:

$ ansible-galaxy install geerlingguy.docker

了解 docker role 的基本配置

我们安装的 geerlingguy.docker role 的主要配置文件为:~/.ansible/roles/geerlingguy.docker/defaults/main.yml。下面介绍一下其中的一些比较重要的配置项。

# Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition).
docker_edition: 'ce'
docker_package: "docker-{{ docker_edition }}"
docker_edition 变量用来指定 docker 的版本,ce 代表社区版,ee 代表企业版。

docker_package_state: present
通过设置 docker_package_state 变量为 present、missing 或 latest,可以是安装 docker 还是卸载 docker 已经安装 docker 的最新版本。

docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
docker_service_state 控制 docker daemon 的状态,docker_service_enabled 控制在启动主机时是否启动 docker daemon。

docker_install_compose: true
docker_compose_version: "1.22.0"
docker_compose_path: /usr/local/bin/docker-compose
安装 docker-compose。

docker_apt_release_channel: stable
docker_apt_arch: amd64
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_ignore_key_error: True
对于 Ubuntu 来说,可以选择处理器架构以及稳定版的 docker。

安装 docker

创建 playbook 文件 pb_docker.yml,其中引用已经安装好的 role 来完成 docker 的安装:

---
- hosts: dockerhost
vars:
docker_users:
- nick
roles:
- role: geerlingguy.docker
become: yes

我们同时设置了变量 docker_users,把用户 nick 添加到 docker 组。注意,请在 /etc/ansible/hosts 文件中添加名称为 dockerhost 的组。然后执行下面的命令就可以了:

$ ansible-playbook -u nick pb_docker.yml

检查安装结果

使用下面的命令检查安装的 docker 版本:

$ docker version

下面的命令可以查看 docker-compose 的版本:

$ docker-compose -v

顺便看一下是不是把用户 nick 加入了 docker 组:

通过 Ansible 安装 Docker的更多相关文章

  1. 使用ansible安装docker以及docker-compose

    转自:https://www.cnblogs.com/jsonhc/p/7879028.html 环境三台centos7主机: master:192.168.101.14,node1:192.168. ...

  2. (playbook)ubuntu下ansible安装docker

    --- - hosts: test sudo: yes vars: apt_packages_ca: - apt-transport-https - ca-certificates tasks: - ...

  3. ansible安装二进制kubernetes-1.14.1

    主机信息: 主机IP 主机名 角色 10.10.3.181 k8s-m1  kube-apiserver,kube-controller-manager,kube-scheduler,etcd 10. ...

  4. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  5. 二进制安装 kubernetes 1.12(二) - 安装docker, 部署Flannel网络

    在 node 节点上安装 docker 参考 https://www.cnblogs.com/klvchen/p/8468855.html Flannel 工作原理: 部署Flannel网络 在 ma ...

  6. ansible安装及使用

    一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...

  7. CentOSLinux安装Docker容器

    Docker 使用 环境说明 CentOS 7.3(不准确地说:要求必须是 CentOS 7 64位) 不建议在 Windows 上使用 Docker 基本概念 官网:https://www.dock ...

  8. 从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群

    前两期的文章介绍了Kubernetes基本概念和架构,用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用.本篇介绍怎么使用Ansible安装Kubernetes集群. 启 ...

  9. k8s之ansible安装

    项目地址:https://github.com/easzlab/kubeasz #:先配置harbor #:利用脚本安装docker root@k8s-harbor1:~# vim docker_in ...

随机推荐

  1. 3A

    # -*- coding: utf-8 -*- import datetime, time, heapq, cx_Oracle #2rd sheet def get_5mins_3A_LOG(): c ...

  2. Kubernetes中的RBAC

    Kubernetes中,授权有ABAC(基于属性的访问控制).RBAC(基于角色的访问控制).Webhook.Node.AlwaysDeny(一直拒绝)和AlwaysAllow(一直允许)这6种模式. ...

  3. Vue(三十)公共组件

    以 分页 组件为例:(根据自己具体业务编写) 1.pagination.vue <template> <!-- 分页 --> <div class="table ...

  4. 201771010118 马昕璐 《面向对象设计 java》第十七周实验总结

    1.实验目的与要求 (1) 掌握线程同步的概念及实现技术: (2) 线程综合编程练习 2.实验内容和步骤 实验1:测试程序并进行代码注释. 测试程序1: l 在Elipse环境下调试教材651页程序1 ...

  5. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Openssl 1.1.0e + Mariadb 10.1.22 + Nginx 1.12.0 + PHP 7.1.4 + Laravel 5.4 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  6. 干掉safedog命令

    sc delete safedogguardcenter    shutdown -r -t 00 两条命令搞定

  7. 为什么导入本地jquery.js老是无效?(已解决)

    我从jquery官网里复制过来jquery.js内容,然后粘贴到本地,但是引用的时候总是无效. 在翻看脚本所在目录,无意间发现脚本文件是个jquery.js.js,    原来是我的文件的扩展名的问题 ...

  8. UML建模工具

    UML:Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段 ...

  9. TCP协议学习总结(中)

    很多人都说TCP协议是一个十分复杂的协议,在学习当中,我对协议每一个问题都分解学习后,每一个分解我都能体会和理解它的要点,并不难理解.但我把这些拆分的细节合并后,确认感觉这样一个协议相对“臃肿”但又好 ...

  10. Spring Boot 实现 RabbitMQ 延迟消费和延迟重试队列

    本文主要摘录自:详细介绍Spring Boot + RabbitMQ实现延迟队列 并增加了自己的一些理解,记录下来,以便日后查阅. 项目源码: spring-boot-rabbitmq-delay-q ...