Centos7 Ansilbe-安裝Docker-mongo

前言

Ansible 入門詳解參考等源於此

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

報錯相關

若需要密碼(嫌麻煩),或失敗。請先打通單向登錄免密即可
單向登錄命令與腳本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章