使用playbook实现一键安装nginx+PHP
2021-02-05 19:17
标签:install keepaliv pat -bash default src x86_64 bash document 使用playbook实现一键安装nginx+PHP 标签:install keepaliv pat -bash default src x86_64 bash document 原文地址:https://www.cnblogs.com/syy1757528181/p/13122289.html环境
主机名
wanIP
lanIP
服务
角色
web01
10.0.0.7
172.16.1.7
nginx服务端
被控端
web02
10.0.0.8
172.16.1.8
nginx服务端
被控端
流程分析
1.安装ansible
2.优化ansible
3.推送公钥
4.开启防火墙
5.开启80 443 873 nfs等端口和服务白名单
6.关闭selinux
7.创建同一的用户
1.安装nginx
2.拷贝nginx配置文件
3.拷贝nginx server
4.创建站点目录
5.编辑默认页面
6.启动nginx
主机清单
mkdir /root/ansible/nginx/ -p && vim /root/ansible/nginx/hosts
[web_group]
web01 ansible_ssh_host=172.16.1.7 asible_ssh_user=root ansible_ssh_port=22
web02 ansible_ssh_host=172.16.1.8 asible_ssh_user=root ansible_ssh_port=22
上传做好的nginx_php(rpm)包
cd / && rz
nginx配置文件
vim /root/ansible/nginx/nginx.conf
user www;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
站点目录
vim /root/ansible/nginx/html
123
nginx server
mkdir /root/ansible/nginx/conf.d/ -p && vim /root/ansible/nginx/conf.d/wp.conf
server {
listen 80;
server_name cs.wp.com;
root /code;
index index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
yml
vim /root/ansible/nginx/nginx.yml
- hosts: all
tasks:
- name: Install Nginx Server
yum:
name: nginx
state: present
- name: Configure Nginx Conf
copy:
src: /root/ansible/nginx/nginx.conf
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: 0644
when: ansible_hostname is match "web*"
- name: Nginx Server
copy:
src: /root/ansible/nginx/conf.d/wp.conf
dest: /etc/nginx/conf.d/wp.conf
owner: root
group: root
mode: 0644
when: ansible_hostname is match "web*"
- name: Create web index.html
copy:
src: /root/ansible/nginx/html
dest: /code/index.html
owner: www
group: www
mode: 0644
when: ansible_hostname is match "web*"
- name: Create HTML Directory
file:
path: /code/wordpress
owner: www
group: www
mode: 0755
state: directory
recurse: yes
when: ansible_hostname is match "web*"
- name: Start Nginx Server
service:
name: nginx
state: started
enabled: true
- name: jieya nginx_php.tar.gz
unarchive:
src: /root/nginx_php.tar.gz
dest: /root
- name: install php
shell: "{{ item }}"
with_items:
- "yum remove -y php-common.x86_64"
- "yum localinstall -y /root/rpm/*rpm"
when: ansible_hostname is match "web*"
- name: Configure php Conf
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: 0644
with_items:
- { src: "/root/ansible/nginx/php.ini",dest: "/etc" }
- { src: "/root/ansible/nginx/www.conf",dest: "/etc/php-fpm.d/"}
when: ansible_hostname is match "web*"
- name: Start php Server
service:
name: php-fpm
state: started
enabled: true
when: ansible_hostname is match "web*"
执行
1.执行base.yml
[root@m01 ~]# ansible-playbook ansible/base.yml
2.执行rsync.yml
[root@m01 ~]# ansible-playbook ansible/nginx/nginx.yml -i /root/ansible/nginx/hosts
3.域名解析
4.客户端重启nginx PHP即可访问cs.wp.com网站