Ansible自动化安装nginx
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,1.安装ansible参考:运维自动化工具之Ansible2.ansible相关配置cat /etc/ansible/hosts[webserver]192.168.1.101192.168.1.10
千家信息网最后更新 2025年02月01日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 2esac
webserver中的两台机器启动nginx服务:
ip:192.168.1.101中--
ip:192.168.1.102中--
ok,完成!
内容
脚本
目录
结构
自动化
成功
两个
主机
工具
拷贝
整体
机器
节点
中创
参考
服务
测试
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
两个服务器可以跨服吗
寻找网络技术开发语言
网络技术员 出路
高青陶瓷库存软件开发
发啦网络安全绘画
pl导出表的数据库
网络安全周黑板报内容
浦发银行社招软件开发
ddr3 服务器内存频率
互联网教育科技公司名字大全
博兴财务办公软件开发咨询
校园网络安全教育心得
基层派出所完善网络安全管控
数据库设计过程
爱琳诗篇所有服务器开服
杭州微梦创科网络技术有限公司
chfs数据库省份代码
存储 流媒体管理服务器
数据库连接查询算法
一迅网络技术
一个网站服务器能有多少个ip
泰安联想服务器总代理销售电话
hyp服务器国际服停服
铁三角网络安全吗
党组会议研究网络安全工作
转发数据库
24小时时间格式数据库
政府单位网络安全治理方案
网络技术员 英文
无法打开数据库project