Ansible自动化安装nginx
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,1.安装ansible参考:运维自动化工具之Ansible2.ansible相关配置cat /etc/ansible/hosts[webserver]192.168.1.101192.168.1.10
千家信息网最后更新 2026年11月03日Ansible自动化安装nginx
1.安装ansible
参考:运维自动化工具之Ansible
2.ansible相关配置
cat /etc/ansible/hosts[webserver]192.168.1.101192.168.1.102
3.在/etc/ansible/roles中创建nginx目录结构
[root@Centos roles]# mkdir -p/etc/ansible/roles/nginx/{defaults,files,handlers,meta,tasks,templates,vars}整体目录结构:

install_nginx.sh内容:
#!/bin/bash#yum -y install gcc openssl-devel pcre-devel zlib-develgroupadd -r nginxuseradd -r -g nginx -s /bin/false -M nginxcd /root/soft &&tar zxf nginx-1.2.2.tar.gz && cd nginx-1.2.2 &&./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ --http-scgi-temp-path=/var/tmp/nginx/scgi \ --with-pcremake && make install
main.yml内容:
- name: copy nginx-1.2.2.tar.gz to webservers copy: src=nginx-1.2.2.tar.gz dest=/root/soft/nginx-1.2.2.tar.gz- name: copy install_nginx.sh to webservers copy: src=install_nginx.sh dest=/root/soft/install_nginx.sh- name: install nginx shell: /bin/bash /root/soft/install_nginx.sh
webservice.yml内容:
- hosts: webserver remote_user: root roles: - nginx
4.执行ansible-playbook进行安装:
[root@Centos files]# cd /etc/ansible/[root@Centos ansible]# lsansible.cfg hosts roles webservice.yml[root@Centos ansible]# ansible-playbook webservice.yml

安装成功!
5.测试
由于webserver两个节点安装完没有启动脚本,我们从ansible主机上拷贝一下启动脚本:
[root@Centos ansible]# scp /etc/rc.d/init.d/nginx root@192.168.1.101:/etc/rc.d/init.d/[root@Centos ansible]# scp /etc/rc.d/init.d/nginx root@192.168.1.102:/etc/rc.d/init.d/
以下为脚本内容:
#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# processname: nginx# config: /etc/nginx/nginx.conf# config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid # Source function library.. /etc/rc.d/init.d/functions # Source networking configuration.. /etc/sysconfig/network # Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx"prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done} start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval} stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval} restart() { configtest || return $? stop sleep 1 start} reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo} force_reload() { restart} configtest() { $nginx -t -c $NGINX_CONF_FILE} rh_status() { status $prog} rh_status_q() { rh_status >/dev/null 2>&1} case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2esacwebserver中的两台机器启动nginx服务:
ip:192.168.1.101中--
ip:192.168.1.102中--
ok,完成!
内容
脚本
目录
结构
自动化
成功
两个
主机
工具
拷贝
整体
机器
节点
中创
参考
服务
测试
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
深圳九邦互联网科技有限公司
互联网电商科技
智能科技公司是互联网公司吗
互联网科技卖菜
科技互联网技术
互联网医疗科技
深圳天众互联网科技公司
互联网前沿科技
上海卓越科技 互联网
左右互联网络科技
青海省互联网新科技
互联网保险科技创业
西安小鹰速贷互联网科技有限公司
中科明德北京互联网科技
伍佰万互联网科技怎么赚钱
张召忠谈中国互联网科技
富国互联网科技002692
萌小萌互联网科技河南有限公司
易租星互联网科技有限公司
湖南永感互联网科技有限公司
重生之互联网科技帝国
互联网下的科技发展
期待互联网科技
以房互联网科技
小马过河互联网科技
无线互联网科技
互联网科技宣传片
互联网和黑科技的看法
广西互联网科技孵化中心