1、網站拓撲html
ansible主機inventory的狀況:mysql
# cat ansible_inventory.txt linux
[front]nginx
10.11.7.224 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xuAKweb
10.11.5.209 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=pwByhredis
[redmon]sql
10.11.7.205 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=WlkWmongodb
10.11.7.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=iJMfZshell
10.11.7.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=WxB6centos
[web]
10.11.7.207 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=VtxR3
10.11.7.206 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=adR5I
10.11.7.192 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=W5f4
[db]
10.11.7.200 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=vLmb
10.11.7.195 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=WOg
10.11.7.193 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=fZrLv
2、安裝部分
一、準備所需的源
下面是nginx源爲例,具體參考博客centos7配置更新源、epel源
# cat /etc/yum.repos.d/ngx.repo
# filename: nginx.repo
[nginx]
name=centos7 nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
enabled=1
gpgcheck=0
#rpm -ivhhttps://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
二、準備好所需的安裝包(建議下載後,經過拷貝等方式進行安裝,有部分關聯包,根據安裝過程當中,出現的提示安裝便可)
下載包:(nginx爲例,部分使用系統默認自帶的安裝包)
# yum install --downloadonly --downloaddir=/root/ans/ningx/ nginx
keepalived包使用默認
或者使用yumdownloader下載:
# yumdownloader --resolve --destdir=/root/ans/ openssl-devel
# ls #安裝包
ansible_inventory.txt mongodb mysql nginx redis resin
三、ansible安裝各個功能應用程序
經過ansible對不一樣功能的服務器進行安裝,具體以下(ntp時間同步能夠略過)
3.一、安裝開發工具:
# ansible all -i /root/ans/ansible_inventory.txt -m shell -a "yum groupinstall 'Development Tools' -y"
3.二、ntp時間同步
# ansible all -i /root/ans/ansible_inventory.txt -m yum -a "name=ntp state=present"
# ansible all -i /root/ans/ansible_inventory.txt -m service -a "name=ntpd state=started enabled=yes"
# ansible all -i ansible_inventory.txt -m systemd -a "name=ntpd state=restarted enabled=yes"
# ansible all -i /root/ans/ansible_inventory.txt -m shell -a "date"
#ansible all -i /root/ans/ansible_inventory.txt -m cron -a "name='sync cron' hour=4 user=root job='ntp.sjtu.edu.cn'"
定時的結果:
# ansible all -i /root/ans/ansible_inventory.txt -m shell -a "crontab -l"
# crontab -l
#Ansible: sync cron
0 4 * * * ntp.sjtu.edu.cn
定時取消:
# ansible all -i /root/ans/ansible_inventory.txt -m cron -a "name='sync cron' minute=10 hour=4 user=root job='ntp.sjtu.edu.cn' state=absent"
新建文件夾,指定存放路徑
http://www.iyunv.com/thread-211953-1-1.html
# ansible all -i /root/ans/ansible_inventory.txt -m shell -a "mkdir /root/ans"
或
# ansible all -i /root/ans/ansible_inventory.txt -m file -a "path=/root/ans state=directory"
查看
# ansible all -i /root/ans/ansible_inventory.txt -a "ls -l /root"
3.三、安裝nginx
[front][web]
# ansible front,web -i /root/ans/ansible_inventory.txt -m copy -a "src=/root/ans/nginx dest=/root/ans/"
# ansible front,web -i /root/ans/ansible_inventory.txt -m shell -a "rpm -ivh /root/ans/nginx/*"
# ansible front,web -i /root/ans/ansible_inventory.txt -m shell -a "rpm -ql nginx"
啓動與中止
# ansible front,web -i /root/ans/ansible_inventory.txt -m systemd -a "name=nginx state=started enabled=yes"
# ansible front,web -i /root/ans/ansible_inventory.txt -m systemd -a "name=nginx state=stopped"
3.四、keepalived安裝
[front]
# ansible front -i /root/ans/ansible_inventory.txt -m yum -a "name=keepalived state=latest"
# ansible front -i /root/ans/ansible_inventory.txt -m service -a "name=keepalived state=start enabled=yes「
# ansible front -i /root/ans/ansible_inventory.txt -m shell -a "rpm -ql keepalived"
# ansible front -i /root/ans/ansible_inventory.txt -m systemd -a "name=keepalived state=started enabled=yes"
# ansible front -i /root/ans/ansible_inventory.txt -m shell -a "ps -ef | grep keepalived" --limit=10.11.7.224
3.五、安裝resin:(須要安裝關聯包jdk、openssl-devel)
[web]
# ls resin/
jdk-8u121-linux-x64.rpm resin-4.0.49-1.x86_64.rpm RPM-GPG-KEY-caucho
# ansible web -i /root/ans/ansible_inventory.txt -m copy -a "src=/root/ans/resin dest=/root/ans/"
# ansible web -i /root/ans/ansible_inventory.txt -m shell -a "yum install /root/ans/resin/jdk-8u121-linux-x64.rpm -y」
# ansible web -i /root/ans/ansible_inventory.txt -m shell -a "rpm --import /root/ans/resin/RPM-GPG-KEY-caucho"
# ansible web -i /root/ans/ansible_inventory.txt -m shell -a "yum install openssl-devel -y"
# ansible web -i /root/ans/ansible_inventory.txt -m shell -a "rpm -ivh /root/ans/resin/resin-4.0.49-1.x86_64.rpm" #也可用使用yum來安裝
3.六、安裝mongodb和Redis:
[redmon]
# ansible redmon -i /root/ans/ansible_inventory.txt -m copy -a "src=/root/ans/mongodb dest=/root/ans/"
# ansible redmon -i /root/ans/ansible_inventory.txt -m copy -a "src=/root/ans/redis dest=/root/ans/"
# ansible redmon -i /root/ans/ansible_inventory.txt -m shell -a "yum install /root/ans/redis/*.rpm -y"
# ansible redmon -i /root/ans/ansible_inventory.txt -m shell -a "yum install /root/ans/mongodb/*.rpm -y"
3.七、安裝mysql(mysql-community-server):
# ansible db -i /root/ans/ansible_inventory.txt -m copy -a "src=/root/ans/mysql dest=/root/ans/"
# ansible db -i /root/ans/ansible_inventory.txt -m shell -a "yum install /root/ans/mysql/*.rpm -y"