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

nginx配置sh脚本远程执行一键安装

背景

本地多机重复操作某些shell指令,分步执行,很耗费时间,
需要远程一键部署,傻瓜化运维,更为通用安装。
即参考docker通用安装

sudo curl https://get.docker.com | sh -
# sudo python3 -m pip install docker-compose

具体执行

总体思路:
1、容器化nginx部署;
2、准备好要访问的目录,这里是一个文件夹,映射到nginx里面;
3、修改nginx配置,默认映射到2中的目录;
4、访问nginx指定的路径,如下图即可。这里先上效果图
在这里插入图片描述
具体配置为:

version: "3"services:nginx_sh:image: nginxcontainer_name: nginx_shrestart: always#network_mode: hostports:- "82:80"volumes:- /etc/localtime:/etc/localtime:ro#- /var/docker/nginx-sh/nginx.conf:/etc/nginx/nginx.conf- /var/docker/nginx-sh/conf.d:/etc/nginx/conf.d#- /var/docker/nginx-sh/html:/usr/share/nginx/html- /var/docker/nginx-sh/curl-sh:/var/docker/nginx-sh/curl-shlogging:options:max-size: "1g"max-file: "1"environment:VERSION: 4

其中/var/docker/nginx-sh/curl-sh目录下放置要访问的脚本
在这里插入图片描述
其中hello.sh脚本内容如下

echo "Hello World!"

nginx的配置文件/var/docker/nginx-sh/conf.d/install-sh.conf

server {listen       80;listen  [::]:80;server_name  localhost;#access_log  /var/log/nginx/host.access.log  main;location / {root /var/docker/nginx-sh/curl-sh;# 这一步是关键,打开目录浏览功能autoindex on;
#       index  index.html index.htm;}
}

docker-compose up -d 启动容器,确保容器正常起来后。
去访问网址的ip:82,就可以看到开头如图所示效果。

当网址ip可以被本地机器ip访问,则本地执行如下指令一键安装

curl www.###.com:82/hello.sh | sh -

效果如图

###@ubuntu:/var/docker/nginx/html$ curl www.###.com:82/hello.sh | sh -% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100    20  100    20    0     0    145      0 --:--:-- --:--:-- --:--:--   145
Hello World!

然后可以调整hello.sh指令,写入更复杂的shell脚本去一键安装。

注意事项

1、确保网址ip能被访问到;
2、shell脚本本地是能正常运行,可以使用

cat hello.sh | sh -

验证正常执行后再发上去

http://www.lryc.cn/news/64097.html

相关文章:

  • Excel表格成绩排名全攻略,让你事半功倍!
  • Docker 持久化存储 Bind mounts
  • LVS +Keepalived 高可用群集部署
  • Kafka调优
  • Debezium系列之:详细介绍Debezium2.X版本导出Sqlserver数据库Debezium JMX指标的方法
  • 基于PWM技术的三相光伏逆变器研究(Simulink)
  • 〖Python网络爬虫实战㉑〗- 数据存储之JSON操作
  • 不得不说的行为型模式-责任链模式
  • 基于dsp+fpga+AD+ENDAC的半导体运动台高速数据采集电路仿真设计(四)
  • 快速搭建Electron+Vite3+Vue3+TypeScript5脚手架 (无需梯子,快速安装Electron)
  • 语义分割学习笔记(二)转置卷积
  • docker运行PostgreSQL数据库维护,执行脚本备份数据库与更新表结构
  • 【计算机网络】127.0.0.1、0.0.0.0、localhost地址是什么?
  • 分享2款CSS3母亲节主题寄语文字动画特效
  • 【AutoGPT】AutoGPT出现,是否意味着ChatGPT已被淘汰
  • ( 字符串) 9. 回文数 ——【Leetcode每日一题】
  • SpringAOP
  • 学系统集成项目管理工程师(中项)系列15_质量管理
  • 统计学习方法第四章——朴素贝叶斯法
  • 安装配置goaccess实现可视化并实时监控nginx的访问日志
  • springboot第14集:MyBatis-CRUD讲解
  • ES6新特性(1)
  • 这就是二分查找?(C语言版)
  • 操作系统之内存管理
  • 【Python | matplotlib】matplotlib.cm的理解以及举例说明
  • 数据库单实例升级
  • Photoshop如何使用选区之实例演示?
  • ThreadLocal的使用介绍和底层原理解析和开源框架的使用实例
  • 带你学c带你飞-P7取值范围
  • ramfs, rootfsinitramfs