Heim  >  Artikel  >  Backend-Entwicklung  >  Die automatisierte Remote-Kompilierung von Ansible startet Nginx

Die automatisierte Remote-Kompilierung von Ansible startet Nginx

不言
不言Original
2018-06-04 09:21:411434Durchsuche

Dieser Artikel stellt hauptsächlich die automatische Remote-Kompilierung und den Start von Nginx vor. Jetzt kann ich ihn mit allen teilen.

Umgebung: rhel7.3
Software:

[root@server11 ~]# ansible --versionansible 2.5.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]

ssh passwortfrei

[root@server11 ansible]# ssh-keygen[root@server11 ansible]# ssh-copy-id 192.168.122.12

Dateiverzeichnisstruktur

[root@server11 ansible]# tree.
├── ansible.cfg├── hosts
├── nginx.yaml└── roles
    └── nginx
        ├── default
        ├── files
        │   └── nginx-1.13.6.tar.gz
        ├── handlers
        ├── meta
        ├── tasks
        │   └── main.yml
        ├── templates
        │   ├── nginx.conf
        │   └── nginx.service
        └── vars
            └── main.yml9 directories, 8 files

roles/nginx/tasks/main.yml

[root@server11 ansible]# cat roles/nginx/tasks/main.yml - name: copy package  
  copy: src=nginx-1.13.6.tar.gz dest=/usr/local/src/nginx-1.13.6.tar.gz  
  tags: cppkg  

- name: tar nginx  
  shell: cd /usr/local/src;tar -xf nginx-1.13.6.tar.gz  

- name: yum install  
  yum: name={{ item }} state=latest  
  with_items:  
    - openssl-devel  
    - pcre-devel  
    - gcc  

- name: install nginx  
  shell: useradd nginx;cd /usr/local/src/nginx-1.13.6;./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module  --with-pcre;make && make install  - name: copy conf file  
  template: src=nginx.conf dest=/usr/local/nginx/conf/nginx.conf  

- name: systemctl init  
  template: src=nginx.service dest=/usr/lib/systemd/system/nginx.service  

- name: start nginx service  
  service: name=nginx state=started enabled=true

roles/nginx/ templates/ nginx.conf

[root@server11 ansible]# cat roles/nginx/templates/nginx.conf user  nginx;  
worker_processes  {{ ansible_processor_vcpus }};  

#error_log  logs/error.log;  #error_log  logs/error.log  notice;  #error_log  logs/error.log  info;  #pid        logs/nginx.pid;  events {  
    worker_connections  65535;  
}  


http {  
    include       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  logs/access.log  main;  

    sendfile        on;  
    #tcp_nopush     on;  

    #keepalive_timeout  0;  
    keepalive_timeout  65;  

    #gzip  on;  

    server {  
        listen       {{ nginxport }};  
        server_name  localhost;  

        #charset koi8-r;  

        #access_log  logs/host.access.log  main;  

        location / {  
            root   html;  
            index  index.html index.htm;  
        }  

        #error_page  404              /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           html;  
        #    fastcgi_pass   127.0.0.1:9000;  
        #    fastcgi_index  index.php;  
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
        #    include        fastcgi_params;  
        #}  

        # deny access to .htaccess files, if Apache's document root  
        # concurs with nginx's one  
        #  
        #location ~ /\.ht {  
        #    deny  all;  
        #}  
    }  


    # another virtual host using mix of IP-, name-, and port-based configuration  
    #  
    #server {  
    #    listen       8000;  
    #    listen       somename:8080;  
    #    server_name  somename  alias  another.alias;  

    #    location / {  
    #        root   html;  
    #        index  index.html index.htm;  
    #    }  
    #}  


    # HTTPS server  
    #  
    #server {  
    #    listen       443 ssl;  
    #    server_name  localhost;  

    #    ssl_certificate      cert.pem;  
    #    ssl_certificate_key  cert.key;  

    #    ssl_session_cache    shared:SSL:1m;  
    #    ssl_session_timeout  5m;  

    #    ssl_ciphers  HIGH:!aNULL:!MD5;  
    #    ssl_prefer_server_ciphers  on;  

    #    location / {  
    #        root   html;  
    #        index  index.html index.htm;  
    #    }  
    #}  }

roles/nginx/templates/nginx.service

[root@server11 ansible]# cat roles/nginx/templates/nginx.service [Unit]  
Description=The nginx HTTP and reverse proxy server  
After=network.target remote-fs.target nss-lookup.target  

[Service]  
Type=forking  
PIDFile=/usr/local/nginx/logs/nginx.pid  
ExecStartPre=/usr/bin/rm -f /run/nginx.pid  
ExecStartPre=/usr/local/nginx/sbin/nginx -t  
ExecStart=/usr/local/nginx/sbin/nginx  
ExecReload=/bin/kill -s HUP $MAINPID  
KillMode=process  
KillSignal=SIGQUIT  
TimeoutStopSec=5  
PrivateTmp=true  

[Install]  
WantedBy=multi-user.target

roles/nginx/vars/main.yml

[root@server11 ansible]# cat roles/nginx/vars/main.yml nginxport: "80"  server_name: "192.168.122.12"  root_dir: "/web"

nginx.yaml

[root@server11 ansible]# cat nginx.yaml 
- hosts: 192.168.122.12  remote_user: root  
  roles:  
  - nginx

Verwandte Empfehlungen:

ansible Die API implementiert die asynchrone Ausführung von Befehlen

Das obige ist der detaillierte Inhalt vonDie automatisierte Remote-Kompilierung von Ansible startet Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn