spacer.gif一、网站拓扑

wKiom1jxiTnSLwcGAADrlKEbY5Q757.png-wh_50

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"