天高云淡 发表于 2018-7-29 09:59:13

ansible部署nginx客户端

# ls tasks/  
main.yml
  
# cat tasks/main.yml
  
- name: sent nginx
  
copy: src=nginx-1.12.0.tar.gz dest=/tmp/nginx-1.12.0.tar.gz    ##将安装包推送到远端,会调用files目录下的安装包。
  
- name: tar nginx
  
shell: cd /tmp;tar -xf nginx-1.12.0.tar.gz   ##解压缩安装包。
  
- name: install packages
  
yum: name={{ item }} state=latest      ##使用with循环安装依赖包。
  
with_items:
  
- openssl-devel
  
- pcre-devel
  
- name: install nginx
  
shell: cd /tmp/nginx-1.12.0;./configure --user=nginx --group=nginx --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre;make && make install         ##编译安装nginx
  
- name: useradd nginx
  
shell: useradd nginx -s /sbin/nologin      ##添加nginx用户。
  
- name: copy nginx.conf
  
template: src=nginx.conf dest=/opt/nginx/conf/nginx.conf    ##将本地配置好的配置文件推送到远端,会调用templates目录下的文件。
  
tags: copynginx.conf   ##打一个标签。
  
- name: start nginx
  
shell: /opt/nginx/sbin/nginx    ##开启nginx服务
  
notify: reload nginx    ##触发器,当复制过去的文件有差异时便会出发handlers模块里的文件。
  
nginx配置文件,里面定义了一些变量,使得可以被用来安装多台nginx。
  

  

  
# ls templates/
  
nginx.conf
  
# cat templates/nginx.conf
  
#usernobody;
  
worker_processes{{ ansible_processor_vcpus }};    ###ansible带的变量,可以通过命令ansible 192.168.40.147 -m setup找到客户机相应的值。
  
#error_loglogs/error.log;
  
#error_loglogs/error.lognotice;
  
#error_loglogs/error.loginfo;
  
#pid      logs/nginx.pid;
  
events {
  
worker_connections1024;
  
}
  
http {
  
include       mime.types;
  
default_typeapplication/octet-stream;
  
#log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
  
#                  '$status $body_bytes_sent "$http_referer" '
  
#                  '"$http_user_agent" "$http_x_forwarded_for"';
  
#access_loglogs/access.logmain;
  
sendfile      on;
  
#tcp_nopush   on;
  
#keepalive_timeout0;
  
keepalive_timeout65;
  
#gzipon;
  
server {
  
listen       {{ nginx_port }};      ###监听端口,在vars模块中定义。
  
server_name{{ server_name }};    ###域名,在vars模块中定义。
  
#charset koi8-r;
  
#access_loglogs/host.access.logmain;
  
location / {
  
root   /web;
  
indexindex.php index.html index.htm;
  
}
  
#error_page404            /404.html;
  
# redirect server error pages to the static page /50x.html
  
#
  
error_page   500 502 503 504/50x.html;
  
location = /50x.html {
  
root   html;
  
}
  
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
  
#
  
#location ~ \.php$ {
  
#    proxy_pass   http://127.0.0.1;
  
#}
  
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  
#
  
# location ~ \.php$ {
  
#   root         /web;
  
#   fastcgi_pass   127.0.0.1:9000;
  
#   fastcgi_indexindex.php;
  
#   fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
  
#   include      fastcgi_params;
  
# }
  
# deny access to .htaccess files, if Apache's document root
  
# concurs with nginx's one
  
#
  
#location ~ /\.ht {
  
#    denyall;
  
#}
  
}
  
# another virtual host using mix of IP-, name-, and port-based configuration
  
#
  
#server {
  
#    listen       8000;
  
#    listen       somename:8080;
  
#    server_namesomenamealiasanother.alias;
  
#    location / {
  
#      root   html;
  
#      indexindex.html index.htm;
  
#    }
  
#}
  
# HTTPS server
  
#
  
#server {
  
#    listen       443 ssl;
  
#    server_namelocalhost;
  
#    ssl_certificate      cert.pem;
  
#    ssl_certificate_keycert.key;
  
#    ssl_session_cache    shared:SSL:1m;
  
#    ssl_session_timeout5m;
  
#    ssl_ciphersHIGH:!aNULL:!MD5;
  
#    ssl_prefer_server_cipherson;
  
#    location / {
  
#      root   html;
  
#      indexindex.html index.htm;
  
#    }
  
#}
  
include vhosts/*.conf;    ###这里添加一条include,可以在安装nginx成功后方便管理时添加虚拟主机,或者模块。
  
}
页: [1]
查看完整版本: ansible部署nginx客户端