# ansible **Repository Path**: liuyu7730/ansible ## Basic Information - **Project Name**: ansible - **Description**: 一台master,8台服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-18 - **Last Updated**: 2023-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Ansible自动部署CMS ### 项目介绍 本项目由1台Master主机和8台Slave从机共9台服务器组成: 1台Master主机(须保证其yum源可用且已经安装了Ansible并可以免密登陆所有从机) 1台数据库服务器(数据库默认账号为webadmin,密码为Qwer1234@) 1台静态文件服务器 1台备份服务器 3台web服务器 2台负载均衡服务器 ### 运行环境 系统版本:CentOS Linux release 7.9.2009 (Core) Ansible版本:2.9.27 Python版本:2.7.5、3.6.8 MySQL版本:5.7.44 Nginx版本:1.24 ### 目录结构 ``` . ├── cert # 证书目录 │ └── https.pem # 密钥和证书文件 ├── confs # 配置文件目录 │ ├── confxml.xml # sersync配置文件 │ ├── default.conf # lnmp的nginx配置文件 │ ├── exports # nfs配置文件 │ ├── keepalived_master.conf # 主lb配置文件 │ ├── keepalived_slave.conf # 从lb配置文件 │ ├── nginx_lb.conf # nginx反向代理配置文件 │ ├── proxy_params # nginx代理参数 │ ├── rsyncd.conf # rsync配置文件 │ └── server.xml # tomcat配置文件 ├── main.sh # 启动文件 ├── playbooks # 剧本目录 │ ├── backup_server.yml │ ├── backup.yml │ ├── db_server.yml │ ├── global_configuration.yml │ ├── lb_server.yml │ ├── lnmp_server.yml │ ├── main.yml │ ├── nfs_server.yml │ └── zrlog_server.yml ├── README.md ├── repos # yum源文件目录 │ ├── epel.repo │ ├── mysql.repo │ └── nginx.repo ├── scripts # 脚本目录 │ ├── bak_original_repo_files.sh # 备份原来的repo文件脚本 │ ├── rsync_client.py # 备份文件脚本 │ └── set_db_passwd.sh # 设置MySQL密码脚本 ├── services # services文件目录 │ ├── sersync.service │ └── tomcat.service └── tools # 安装包目录 ├── apache-tomcat-9.0.45.tar.gz ├── sersync2 ├── WeCenter322.tar.gz └── zrlog.war ``` ### 运行步骤 1.Master机yum安装git: ``` yum install -y git ``` 2.克隆仓库: ``` git clone https://gitee.com/dong-jun123123/ansible-project.git ``` 3.修改/etc/ansible/hosts文件中的IP地址,可将注释内容全部删掉: ``` cat /etc/ansible/hosts [db] 192.168.153.141 [nfs] 192.168.153.149 [backup] 192.168.153.143 [php] 192.168.153.144 # web1 192.168.153.146 # web2 [java] 192.168.153.147 # web3 192.168.153.146 # web2 [lb] 192.168.153.148 # 主LB 192.168.153.151 # 从LB [web:children] php java ``` 4.取消/etc/ansible/ansible.cfg文件的第71行注释 ``` host_key_checking = False ``` 5.修改完成后可检查其连通性: ``` ansible all -m ping ``` 如果全为绿色则说明所有主机都在线,再进行以下操作 6.启动: ``` cd ansible-project/ [root@localhost ansible-project]# ./main.sh 请输入NFS服务器的IP:192.168.153.149 请输入LB主服务器的IP:192.168.153.148 请输入LB从服务器的IP:192.168.153.151 请输入公网IP:192.168.153.201(自己输入同一网段的任意未被使用过的IP) 请输入backup服务器IP:192.168.153.143 请输入web1服务器IP:192.168.153.144 请输入web2服务器IP:192.168.153.146 请输入web3服务器IP:192.168.153.147 ``` 6.最终效果: 访问公网IP:8080地址页面为: ![zrlog](https://gitee.com/dong-jun123123/ansible-project/raw/master/images/zrlog.png) 访问公网IP地址页面为: ![zhihu](https://gitee.com/dong-jun123123/ansible-project/raw/master/images/zhihu.png) ### 常见问题解决方法 1.如遇到此情况说明yum在生成缓存时遇到了网络相关的问题: ![error2](https://gitee.com/dong-jun123123/ansible-project/raw/master/images/error2.png) 可将playbooks/db_server.yml文件中的16、17行注释掉: ![error4](https://gitee.com/dong-jun123123/ansible-project/raw/master/images/error4.png) 并手动在执行失败的主机上执行: ``` yum clean all && yum makecache ``` 最后重新运行剧本: ``` ansible-playbook playbooks/main.yml ``` ### 已知BUG 1.在lnmp主机下开启SELinux后网页403且修改nginx日志路径后会导致nginx启动失败,因此关闭了SELinux; 2.两台LB服务器必须关闭防火墙后才能正常访问; 3.只能有一个CMS可以使用https访问;