使用ansible批量在服務(wù)器安裝docker
注意:
1. ansible版本是2.8,其他版本也都是支持的,低版本請自行百度下,看下模塊的使用方法
2. 我修改了docker的存儲路徑,默認(rèn)是在/var/lib/docker,系統(tǒng)盤太小,所以單獨掛載了一塊數(shù)據(jù)盤,掛載到了/data,執(zhí)行腳本請確定有/data此目錄
3. 使用直接修改 yourhosts即可
4. 配置范例
cat /etc/ansible/hosts
[yourhosts]
web01 ansible_host=192.168.10.30 ansible_port=22 ansible_user=root ansible_password=1qaz
web02 ansible_host=192.168.10.23 ansible_port=22 ansible_user=root ansible_password=2wsx
5. 執(zhí)行腳本
ansible-playbook docker_install.yml
6. 腳本內(nèi)容:
cat /usr/local/srcipt/docker_install.yml
---
- hosts: yourhosts
remote_user: root
tasks:
- name: Add epel-release repository
yum_repository:
name: epel
description: EPEL YUM repo
baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/
gpgcheck: no
- name: Installing System Dependency Packages
yum:
name:
- yum-utils
- device-mapper-persistent-data
- lvm2
state: present
disable_gpg_check: yes
- name: Add Docker Yum Repo
shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- name: Install docker
yum:
name: docker-ce
state: present
disable_gpg_check: yes
notify: install docker
handlers:
- name: Created symlink from docker.services
listen: install docker
shell: systemctl enable docker
- name: Create docker configuration file paths
listen: install docker
file:
path: /etc/docker
state: directory
- name: Create docker data paths
listen: install docker
file:
path: /data/docker
state: directory
# 注意 marker中不能有值,因為docker配置文件的#不是注釋,有可能啟動失敗
- name: Create configuration
listen: install docker
blockinfile:
path: /etc/docker/daemon.json
create: yes
content: |
{
"live-restore": true,
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
}
marker: " "
# marker: "#{mark} ansible aliyun config"
- name: Modify the data file path
listen: install docker
lineinfile:
path: /usr/lib/systemd/system/docker.service
regexp: "^ExecStart"
line: ExecStart=/usr/bin/dockerd --graph /data/docker
- name: daemon reload
listen: install docker
shell: systemctl disable docker && systemctl enable docker && systemctl daemon-reload
- name: start docker server
listen: install docker
service:
name: docker
state: started