Centos7 Ansilbe-安裝Docker-mongo
前言
Ansible 入門詳解參考等源於此
適用於自己的Ansible playbook
獲取阿里雲Ansible的源,安裝Ansible
Centos7
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
Centos6
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
安裝Ansible
yum -y install ansible
編寫劇本
vim docker_mongo.yml
# 指明在webservers組內所有主機上執行任務
# tempip是指目標服務器IP地址:SSH端口(或修改主機清單ansible/host使用別名也可)
# 例如 192.168.2.25:22
# 指明在webservers組內所有主機上執行任務
- hosts: tempip
#遠程執行任務的用戶爲
remote_user: root
#自定義變量
vars:
- docker_repo: "/data/source/docker/docker-ce.repo"
- mongo_conf: "/data/source/docker/mongo"
- path: "/data"
#任務列表
tasks:
#聲明
- name: check docker
shell: "[ -f /usr/bin/docker ] && echo true || echo false"
register: bashrc_result
- name: docker yum repo
copy: src={{ docker_repo }} dest=/etc/yum.repos.d/ backup=yes
when: bashrc_result.stdout.find('true') == -1
- name: docker install
shell: yum clean all && yum -y install epel-release yum-utils device-mapper-persistent-data lvm2 docker-ce
when: bashrc_result.stdout.find('true') == -1
- name: check docker status
shell: "systemctl status docker | sed '4,$d'| awk '{print $1,$2,$3}'"
register: bashrc_result
- name: service enable docker
service: name=docker enabled=yes state=restarted
when: bashrc_result.stdout.find('running') == -1
- name: check imamges
shell: docker images
register: bashrc_result
- name: docker pull mongo
shell: docker pull mongo
when: bashrc_result.stdout.find('mongo') == -1
- name: check docker ps
shell: docker ps
register: bashrc_result
- name: docker mongo_conf
copy: src={{ mongo_conf }} dest={{ path }}/ backup=yes
when: bashrc_result.stdout.find('mongo') == -1
- name: docker run mongo
shell: "docker run --name mongo -p 60117:27017 -v /data/mongo/conf:/data/configdb -v /data/mongo/db/:/data/db/ -v /data/mongo/mongodb/:/var/log/mongodb/ --restart=unless-stopped -d mongo"
when: bashrc_result.stdout.find('mongo') == -1
docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
執行劇本
ansible-playbook docker_mongo.yml
報錯相關
若需要密碼(嫌麻煩),或失敗。請先打通單向登錄免密即可
單向登錄命令與腳本