背景
本地多机重复操作某些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脚本本地是能正常运行,可以使用文章来源:https://www.toymoban.com/news/detail-427995.html
cat hello.sh | sh -
验证正常执行后再发上去文章来源地址https://www.toymoban.com/news/detail-427995.html
到了这里,关于nginx配置sh脚本远程执行一键安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!