ansible部署mongoDB

1、ansible控制端安裝和客戶端主機組準備(/etc/ansible/hosts)mysql

#rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmnginx

# yum install ansibel -yredis

#cat /etc/ansbileb/hostssql

[front]mongodb

192.168.0.241 ansible_ssh_pass=centosshell

192.168.0.242 ansible_ssh_pass=centoscentos

 

[static]安全

192.168.0.243 ansible_ssh_pass=centosbash

192.168.0.244 ansible_ssh_pass=centos服務器

 

[KW:children]

front

static

 

[resin]

192.168.0.245 ansible_ssh_pass=centos

192.168.0.246 ansible_ssh_pass=centos

 

[redis]

192.168.0.247 ansible_ssh_pass=centos

192.168.0.248 ansible_ssh_pass=centos

 

[mongo]

192.168.0.9 ansible_ssh_pass=centos

192.168.0.8 ansible_ssh_pass=centos

 

[M3:children]

redis

mongo

 

[mysql]

192.168.0.251 ansible_ssh_pass=centos

192.168.0.252 ansible_ssh_pass=centos

192.168.0.254 ansible_ssh_pass=centos

192.168.0.253 ansible_ssh_pass=centos

 

 

2、ansible控制端與客戶端主機的互信配置

3、mongodb yum源配置與安裝

一、配置mongodb源,並下載rpm包進行yum安裝

添加yum源和安裝mongodb

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

 

[root@7cest ~]# cat /etc/yum.repos.d/MongoDB.repo

[mongodb-org-3.4]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

 

[mongodb-org-2.6]

name=MongoDB 2.6 Repository

baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/

gpgcheck=0

enabled=1

 

[root@7cest ~]# yum clean all

[root@7cest ~]# yum makecache

直接yum安裝以下:(mongodb爲2.6版本,mongodb-org爲3.0版本)

[root@7cest ~]# yum install -y mongodb

[root@7cest ~]# yum install -y mongodb-org

 

下載rpm包,包括依賴包後安裝:

#依賴包下載工具包安裝

[root@7cest ~]# yum install yum-utils -y

#使用方法:yum  --enablerepo=[repo] install --downloadonly  --downloaddir=<directory>  <package-name>

#mongodb下載:(mongodb爲2.6版本,mongodb-org爲3.0版本)

[root@7cest mongo]# yum install --downloadonly --downloaddir=/root/mongo/ mongodb 

[root@7cest mongo]# yum install --downloadonly --downloaddir=/root/mongo/mongo34/ mongodb-org

root@7cest mongo34]# ls

mongodb-org-3.4.0-1.el7.x86_64.rpm         mongodb-org-shell-3.4.0-1.el7.x86_64.rpm

mongodb-org-mongos-3.4.0-1.el7.x86_64.rpm  mongodb-org-tools-3.4.0-1.el7.x86_64.rpm

mongodb-org-server-3.4.0-1.el7.x86_64.rpm

[root@7cest mongo34]# rpm -ivh mongodb-org-3.4.0-1.el7.x86_64.rpm mongodb-org-shell-3.4.0-1.el7.x86_64.rpm mongodb-org-mongos-3.4.0-1.el7.x86_64.rpm mongodb-org-tools-3.4.0-1.el7.x86_64.rpm mongodb-org-server-3.4.0-1.el7.x86_64.rpm

2、mongodb啓動配置

[root@7cest mongo34]# systemctl enable mongod.service

[root@7cest mongo34]# systemctl start mongod.service

[root@7cest mongo34]# ss -tunlp | grep mongod

tcp    LISTEN     0      128    127.0.0.1:27017                 *:*                   users:(("mongod",pid=3152,fd=7))

[root@7cest mongo34]# mongo               #登陸操做

二、經過ansible-playbook來安裝mongodb

爲 mongodb的部署建立一個工做目錄,包括子目錄和部署配置文件,安裝 tree 命令,使用tree命令來查看:

[root@202-test ansiblesoft]# ls

keepalived  mongoDB  nginx

[root@202-test ansiblesoft]# pwd

/bak/ansiblesoft

[root@202-test ansiblesoft]#  mkdir mongoDB/{file,tasks} -pv

[root@202-test ansiblesoft]#  touch mongoDB/install_mongo.sh

[root@202-test ansiblesoft]# touch mongoDB/mongo_deploy.yml

[root@202-test ansiblesoft]# touch mongoDB/mongo.repo

[root@202-test ansiblesoft]# tree mongoDB/

mongoDB/

├── file

│   ├── mongodb-org-3.4.0-1.el6.x86_64.rpm

│   ├── mongodb-org-mongos-3.4.0-1.el6.x86_64.rpm

│   ├── mongodb-org-server-3.4.0-1.el6.x86_64.rpm

│   ├── mongodb-org-shell-3.4.0-1.el6.x86_64.rpm

│   └── mongodb-org-tools-3.4.0-1.el6.x86_64.rpm

├── install_mongo.sh

├── mongo_deploy.yml

├── mongo.repo

└── tasks

    └── install_mongo.yml

 

2 directories, 9 files


2.一、建立主配置文件mongo-deploy.yml

# cat mongo-deploy.yml

# /bak/ansiblesoft/mongo/mongo-deploy.yml

- hosts : mongo

  tasks :

  - include : 'tasks/install_mongo.yml'

2.二、爲 monogo建立部署文件和下載相關的軟件包

注意:出於安全考慮,建議先下載軟件包到本地服務器或ansible控制端,再經過ansible的拷貝功能,拷貝到ansible客戶端進行安裝。

1)、配置mongodb的yum源(客戶端也須要配置mongodb的yum源,防止關聯包)

# cat mongo.repo 

[mongodb-org-3.4]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc


2)、下載mongdb的rpm包(yum安裝)

下載rpm包,包括依賴包後安裝(參考上文1):

#依賴包下載工具包安裝

# yum install yum-utils -y

#使用方法:yum install --downloadonly --enablerepo=[repo]  --downloaddir=<directory>  <package-name>

#mongodb下載:(mongodb爲2.6版本,mongodb-org爲3.0版本)

# yum install --downloadonly --downloaddir=/root/mongo/ mongodb

# yum install --downloadonly --downloaddir=/root/mongo/mongo34/ mongodb-o

我已經下載好在203主機了,因此經過scp拷貝到ansible本機下:

[root@202-test rpmsoft]# pwd

/bak/ansiblesoft/mongoDB/rpmsoft


[root@202-test rpmsoft]# scp root@192.168.0.203:/root/ansiblecest/rpmsoft/mongodb/* /bak/ansiblesoft/mongoDB/rpmsoft/

root@192.168.0.203's password: 

mongodb-org-3.4.0-1.el6.x86_64.rpm                            100% 5900     5.8KB/s   00:00    

mongodb-org-mongos-3.4.0-1.el6.x86_64.rpm                     100%   12MB  11.6MB/s   00:01    

mongodb-org-server-3.4.0-1.el6.x86_64.rpm                     100%   20MB   9.8MB/s   00:02    

mongodb-org-shell-3.4.0-1.el6.x86_64.rpm                      100%   11MB  11.2MB/s   00:01    

mongodb-org-tools-3.4.0-1.el6.x86_64.rpm                      100%   49MB  12.2MB/s   00:04    

3)、建立主配置文件mongo-deploy.yml 

# cat mongo-deploy.yml

# /bak/ansiblesoft/mongo/mongo-deploy.yml

- hosts : mongo

  tasks :

  - include : 'tasks/install_mongo.yml'

4)、建立yum安裝腳本

[root@202-test mongoDB]# ls

file  install_mongo.sh  mongo_deploy.retry  mongo_deploy.yml  mongo.repo  tasks

[root@202-test mongoDB]# cat install_mongo.sh 

#!/bin/bash

yum install /root/ansiblerpm/mongo/file/* -y 

注意:-y喔

5)、爲mongo建立安裝配置文件install_mongo.yml

 

[root@202-test mongoDB]# cat mongo_deploy.yml

# /bak/ansiblesoft/mongo/mongo-deploy.yml

- hosts : mongo

  tasks :

#  - include : 'tasks/install_mongo.yml'

  - name : install epel

    yum :

      name : https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

      state : installed

  - name : file module (file/link/directory/hard/touch/absent)

    file :

      path : /root/ansiblerpm/mongo

      state : directory

  - name : copy module(copy mongodb-org rpm)

    copy :

      src : /bak/ansiblesoft/mongoDB/file

      dest : /root/ansiblerpm/mongo/

      mode : 0755

      backup : yes

  - name : copy install_mongo.sh

    copy :

      src : /bak/ansiblesoft/mongoDB/install_mongo.sh

      dest : /root/ansiblerpm/mongo/

      mode : 0755

      backup : yes

  - name : install mongo-org

    shell : /bin/bash /root/ansiblerpm/mongo/install_mongo.sh

  - name : chkconfig mongo-org

    service :

      name : mongod

      enabled : yes

      state : started

5)、mongodb服務檢查

[root@202-test mongoDB]# ansible mongo -m shell -a "chkconfig --list | grep mongod"

192.168.0.9 | SUCCESS | rc=0 >>

mongod             0:off    1:off    2:off    3:on    4:off    5:on    6:off

 

192.168.0.8 | SUCCESS | rc=0 >>

mongod             0:off    1:off    2:off    3:on    4:off    5:on    6:off

 

[root@202-test mongoDB]# ansible mongo -m shell -a "ss -tunlp | grep mongod"

192.168.0.8 | SUCCESS | rc=0 >>

tcp    LISTEN     0      128            127.0.0.1:27017                 *:*      users:(("mongod",5891,8))

 

192.168.0.9 | SUCCESS | rc=0 >>

tcp    LISTEN     0      128            127.0.0.1:27017                 *:*      users:(("mongod",5773,8))

相關文章
相關標籤/搜索