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

news/2024/5/20 5:55:19 标签: nginx, 运维, docker

背景

本地多机重复操作某些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: nginx
    container_name: nginx_sh
    restart: always
      #network_mode: host
    ports:
     - "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-sh
    logging:
      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  Current
                                 Dload  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.niftyadmin.cn/n/272605.html

相关文章

实时聊天对客户服务和销售推力有多大?(一)

实时聊天对于跨境电商客户服务来说,已经是不可或缺的存在。那么,他对于跨境电商增加销售量,改进客户服务有什么好处呢?接着往下看。 实时聊天对客户服务的好处 1.实时聊天可让您提供令人愉快的支持 将实时聊天作为客户支持产品…

【测试开发】单元测试、基准测试和性能分析(以 Go testing 为例)

一、为什么需要测试🤔️ 你写不出 bug-free 的代码。你认为自己写出了 bug-free 的代码,但它在你意想不到的地方出错了。你觉得自己写出了永不出错的代码,但它的性能十分糟糕。 二、在开发过程中做好测试(理想情况下)…

逐函数详细讲解ORB_SLAM2算法和C++代码|Tracking.cpp|StereoInitialization|1-5

在ORB-SLAM2算法中,StereoInitialization()函数是用于对双目相机进行立体视觉初始化。在立体视觉SLAM中,初始化是确定初始关键帧、地图点以及相机位姿的关键步骤。这个函数在成功初始化后,将SLAM系统状态设置为OK,为后续的跟踪、定位和地图构建做好准备。以下是这个函数中的…

Faster JSON - orjson | Python 主题

前言 JSON使用的越多就越可能遇到JSON编码或者解码的瓶颈,Python的内置json库虽然也很好用但是也有很多其他更快的JSON库可以使用,但是具体选择哪一个或者哪一种需要根据具体情况,没有一种标准的规则衡量哪一种JSON最好或者最快,…

机器人工程师与孔乙己文学

本文内容严格按创作模板发布: 孔乙已是鲁迅笔下人物,穷困流倒还穿着象征读书人的长衫,迁腐、麻木。最近,大家自我调佩是“当代孔乙己”,学历成为思想负担,找工作时高不成低不就。你可以从以下几个角度说说…

【python基础语法四】python函数和函数相关概念

函数 含义 概念:功能 (包裹一部分代码 实现某一个功能 达成某一个目的)特点:可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 函数基本格式 """ # 定义一个函数 def 函数名():code1code # 调用函数 函数名() """ # 定义函数 def f…

Linux-修改虚拟机为静态IP

一般情况下,NAT网络连接模式下,DHCP动态分配IP地址的,但这样在每次访问连接Linux虚拟机时,都要先去查询ip地址,很麻烦,干脆就将虚拟机IP地址写死,也就是设置为静态的(static&#xf…

C S S

目录 1.样式定义方式 1.1行内样式表 1.2内部样式表 1.3外部样式表 2.注解 3.选择器 3.1标签选择器 3.2 id选择器 3.3 类选择器 3.4 派生选择器 3.5 伪类选择器 链接伪类选择器: 位置伪类选择器: ​编辑 目标伪类选择器: 复合选…