当前位置: 首页 > article >正文

ansible之playbook\shell\script模块远程自动安装nginx

通过shell模块, 编写安装nginx脚本,为yaml脚本,远程到135机器上安装并启动nginx

- hosts: 192.168.45.135
  remote_user: root
  tasks:
  - name: 安装Nginx依赖环境和库文件
    yum:  name=wget,tar,make,gcc,pcre-devel,pcre,zlib-devel state=installed

  - name: 从Nginx官网下载软件包
    shell:  wget -c http://nginx.org/download/nginx-1.26.1.tar.gz -P /usr/src/

  - name: 解压nginx安装包
    shell: cd /usr/src/; tar -xzvf nginx-1.26.1.tar.gz
  - name: 安装Nginx软件服务
    shell: cd /usr/src/nginx-1.26.1/;./configure --prefix=/usr/local/nginx;make;make install
  - name: 启动Nginx服务进程;
    shell: /usr/local/nginx/sbin/nginx

 ansible-playbook -C nginx_install.yaml相当于预编译yaml脚本,也可理解为检查剧本是否正确

ansible-playbook -C nginx_install.yaml

如果编译通过则显示如下截图所示

真正执行时删除掉-C检查即可

ansible-playbook nginx_install.yaml

此时通过前台访问192.168.45.135,即可成功显示nginx欢迎界面

 

 通过script模块,编写shell脚本安装nginx

#!/bin/bash
#2024年9月25日15点12分
#auto install nginx web.
#by author www.jfedu.net
#############################
yum install -y wget tar gcc make pcre-devel zlib-devel
wget -c http://nginx.org//download/nginx-1.26.1.tar.gz -P /usr/src/
cd /usr/src/
ls -l nginx-1.26.1.tar.gz
tar -xzvf nginx-1.26.1.tar.gz
cd nginx-1.26.1/
./configure
make -j4
make -j4 install
/usr/local/nginx/sbin/nginx
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service

查看script模块命令运行规则ansible-doc script

 执行以下命令远程在138上执行auto_install_nginx.sh脚本,自动安装配置nginx

ansible 192.168.45.138 -m script -a "/root/auto_install_nginx.sh"

显示以下结果即为成功,下方防火墙报错可忽略,因为138的防火墙已经处于关闭状态

 在138上即可看到安装的nginx进程,并且可在前台访问到nginx服务

 

 通过ansible拷贝模块可以拷贝内容到远程机器

ansible 192.168.45.138 -m copy -a "src=/root/auto_install_nginx.sh dest=/tmp/"

 之后可以通过shell模块取远程执行138下的shell脚本

ansible 192.168.45.138 -m shell -a "/bin/sh /tmp/auto_install_nginx.sh"

ansible 192.168.45.138 -m shell -a "/bin/sh /tmp/auto_install_nginx.sh"


http://www.kler.cn/news/326782.html

相关文章:

  • Python 时间占位符:毫秒的使用
  • TDengine 签约国家电投旗下四大火力发电厂,助力汽轮机振动数据的有效管理
  • 大模型增量训练--基于transformer制作一个大模型聊天机器人
  • 使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤
  • 【CSS in Depth 2 精译_040】6.3 CSS 定位技术之:相对定位(下)—— 用纯 CSS 绘制一个三角形
  • 使用激光定高需要注意的问题以及效果测试与读取
  • 栈:只允许在一端进行插入或删除操作的线性表
  • 王道-计网
  • HTML讲解(三)通用部分
  • 音频编码:PCM【无损音频】
  • 如何保证Redis与数据库的数据一致性
  • 《程序猿之Redis缓存实战 · 字符串类型》
  • 浅谈网络通信中的透传和非透传
  • 01---java面试八股文——springboot---10题
  • rsync+inotify
  • 【KVM】虚拟化技术及实战
  • defineExpose 显式导出子组件方法
  • 基于SSM的宠物领养管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • MAC M1 安装brew 配置环境变量,安装dart
  • 电影系统1-MovieStrip.vue
  • 一款基于 RBAC 的 Net8 后台管理框架,权限管理,前后台分离,支持多站点单点登录(附源码)
  • 基于Apache和Tomcat的负载均衡实验报告
  • 【30天玩转python】Web开发(Flask/Django)
  • 基于springboot框架的智能招聘系统的设计与实现3hlst
  • ruoyi网页刷新后报404
  • Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型
  • VIM的使用总结
  • (c++)内存四区:1.代码区2.全局区(静态区)3.栈区4.堆区
  • 日常工作技术点总结
  • 关于uniapp wifi调用走过的坑