使用Ansible-Galaxy在Linux上安装Docker

每次在Linux上安装Docker时,

「安装Ubuntu的Docker」
「安装CentOS的Docker」

我通常会在谷歌上搜索相关信息,并从Docker官方网站手动安装。

因为每次都要进行安装很麻烦,所以我想实现自动化。就在这时,我发现了一个名为ansible-galaxy的出色OSS工具,我想向大家推荐一下。

使用Ansible Galaxy

Ansible Galaxy:https://galaxy.ansible.com/geerlingguy/docker
GitHub:https://github.com/geerlingguy/ansible-role-docker

答案集市:https://galaxy.ansible.com/geerlingguy/docker
GitHub:https://github.com/geerlingguy/ansible-role-docker

尝试编写Ansible Playbook

使用VirtualBox在Ubuntu20.04上创建一个虚拟机。
使用Vagrant作为Provisioning工具,使用Ansible在该虚拟机上安装Docker。

创建Vagrantfile

我将创建以下的Vagrantfile。
IP地址将设为192.168.0.3/24。

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.define "ansible-docker" do |node|
    node.vm.box = "bento/ubuntu-20.04"
    node.vm.hostname = "ansible-docker"
    node.vm.network "private", ip: "192.168.0.3", netmask: "255.255.255.0"
    node.vm.provider "virtualbox" do |vb|
      vb.memory = "1024"
    end
  end

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "./install_docker.yml"
    ansible.inventory_path = "./inventory.ini"
    ansible.limit = 'all'
  end
end

安装role

创建一个roles目录,并在其中安装本次使用的角色。

mkdir roles
ansible-galaxy install geerlingguy.docker -p roles/

创建清单和操作手册

库存.ini

[ansible-docker]
192.168.0.3

安装_docker.yml

---
hosts: all
  roles:
    role: geerlingguy.docker
    become: yes

执行Playbook

目录结构如下。

.
├── Vagrantfile
├── install_docker.yml
├── inventory.ini
└── roles
     └── geerlingguy.docker
         ├── LICENSE
         ├── README.md
         ├── defaults
         │   └── main.yml
         ├── handlers
         │   └── main.yml
         ├── meta
         │   └── main.yml
         ├── molecule
         │   └── default
         │       ├── converge.yml
         │       └── molecule.yml
         └── tasks
             ├── docker-compose.yml
             ├── docker-users.yml
             ├── main.yml
             ├── setup-Debian.yml
             └── setup-RedHat.yml

以下指令用于创建虚拟机。(需要在主机操作系统上配置好Ansible执行环境。)

vagrant up

您可以确认已经安装了 Docker 和 Docker Compose。

vagrant@ansible-docker:~$ sudo docker -v
Docker version 19.03.12, build 48a66213fe
vagrant@ansible-docker:~$ sudo docker-compose -v
docker-compose version 1.26.0, build d4451659
广告
将在 10 秒后关闭
bannerAds