ansible一键安装nginx二进制版本

公司需求需要批量部署nginx,闲来无事,改进了原先手动部署的方式,写了一个ansible-playbook

复制代码
- hosts: web
  gather_facts: yes
  vars:
    ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
  tasks:
   - name: add group
     group:
         name: nginx
         state: present

   - name: add user
     user:
         name: nginx
         state: present
         group: nginx
         shell: /sbin/nologin
   - name: check path
     stat:
         path: /usr/local/nginx
     register: file_stat
   - name: unarchive
     unarchive:
         src: /etc/ansible/files/nginx/nginx.tar.gz
         dest: /usr/local/
         owner: nginx
         group: nginx
     when: file_stat.stat.exists == False

   - name: check path
     stat:
         path: /apps/nginx/conf
     register: file_stat_nginx
   - name: compile and install
     shell:
         cmd: "./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module &&  make && make install"
         chdir: "/usr/local/nginx"
     when: file_stat_nginx.stat.exists == False
   - name: chown
     shell:
         cmd: "chown -R  nginx.nginx /apps/nginx && ln -sv /apps/nginx/sbin/nginx /usr/sbin/nginx"
     ignore_errors: yes
   - name: mkdir  pid
     file:
         path: /apps/nginx/run
         state: directory
         owner: nginx
         group: nginx
         recurse: yes
   - name: conf file
     template:
         src: /etc/ansible/files/nginx/nginx.conf
         dest: /apps/nginx/conf/nginx.conf
         owner: nginx
         group: nginx

   - name: mkdir  pid
     file:
         path: /apps/nginx/conf.d
         state: directory
         owner: nginx
         group: nginx
         recurse: yes
   - name: conf.d  file
     template:
         src: /etc/ansible/files/nginx/bbs.com.conf
         dest: /apps/nginx/conf.d/bbs.com.conf
         owner: nginx
         group: nginx

   - name: service file
     template:
         src: /etc/ansible/files/nginx/nginx.service
         dest: /lib/systemd/system/nginx.service
     changed_when: False
   - name: start nginx
     service:
         name: nginx
         state: restarted
         enabled: yes

附加文件

bbs.com.conf

复制代码
[root@devops nginx]#cat bbs.com.conf
server {
   listen       80;
   server_name  bbs.com;
   root /apps/nginx/html;
}




[root@devops nginx]#cat nginx.conf
worker_processes  1;
pid        /apps/nginx/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include /apps/nginx/conf.d/*.conf;
}

添加service文件,方便后续管理

复制代码
[root@devops nginx]#cat nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=10000

[Install]
WantedBy=multi-user.targe
相关推荐
闲云一鹤13 小时前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
何中应4 天前
Nginx转发请求错误
前端·后端·nginx
海天鹰4 天前
【免费】PHP主机=域名+解析+主机
服务器
不是二师兄的八戒4 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
芝士雪豹只抽瑞克五4 天前
Nginx 高性能Web服务器笔记
服务器·nginx
失重外太空啦4 天前
Tomcat
java·服务器·tomcat