zoukankan      html  css  js  c++  java
  • 使用playbook实现一键安装nginx+PHP

    环境

    主机名 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网站
    
  • 相关阅读:
    js 日期比较 (输入的是字符串格式)
    js 弹出确认 取消对话框
    存储过程中查询多个字段的值来判断
    SQL中IF查询
    SQL server 2000安装时提示我”以前的某个程序安装已在安装计算机上创建挂起的文件操
    怎样做人
    RSS
    Silverlight教程第四部分:使用 Style 元素更好地封装观感 (木野狐译)
    Silverlight 2 初览
    Silverlight教程第七部分: 使用控件模板定制控件的观感
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13122289.html
Copyright © 2011-2022 走看看