一、网站拓扑
ansible主机inventory的情况:
# cat ansible_inventory.txt
[front]
10.11.7.224 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xuAK
10.11.5.209 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=pwByh
[redmon]
10.11.7.205 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=WlkW
10.11.7.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=iJMfZ
10.11.7.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=WxB6
[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
二、安装部分
1、准备所需的源
下面是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
2、准备好所需的安装包(建议下载后,通过拷贝等方式进行安装,有部分关联包,根据安装过程中,出现的提示安装即可)
下载包:(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
3、ansible安装各个功能应用程序
通过ansible对不同功能的服务器进行安装,具体如下(ntp时间同步可以略过)
3.1、安装开发工具:
# ansible all -i /root/ans/ansible_inventory.txt -m shell -a "yum groupinstall 'Development Tools' -y"
3.2、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.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.4、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.5、安装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.6、安装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.7、安装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"
转载于:https://blog.51cto.com/mfm117/1916210