1. 程式人生 > >通過 Ansible 安裝 Docker

通過 Ansible 安裝 Docker

本文的演示環境為 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 組: