Web 代理背后的 Rundeck
Rundeck behind web proxy
我正在内部设置 Rundeck 以供自己测试。
我目前正在尝试访问插件的官方存储库,但我知道服务器没有互联网连接这一事实。
我在文档中找不到有关如何将 webproxy 应用于 rundeck 应用程序的说明。
以前有人做过吗?
编辑
服务器是 RHEL8 机器。
我不是指使用反向代理。
** 找到答案**
经过几天的搜索:
- 如果您使用的服务器与互联网断开连接
- 有一个内部代理来路由外部流量
- 使用rundeck的RHEL包
解决方案
编辑您的 /etc/sysconfig/rundeckd 文件
在文件末尾粘贴自定义 RDECK_JVM_SETTINGS
RDECK_JVM_SETTINGS="${RDECK_JVM_SETTINGS:- -Xmx1024m -Xms256m -XX:MaxMetaspaceSize=256m -server -Dhttp.proxySet=true -Dhttp.proxyHost=server -Dhttp.proxyPort=8080 -Dhttps.proxySet=true -Dhttps.proxyHost=server -Dhttps.proxyPort=80 -Dhttp.nonProxyHosts=*.place.com }"
您可以使用 Docker Compose 快速测试它。
想法是将 NGINX 容器放在 Rundeck 容器前面。
/your/path/docker-compose.yml
内容:
version: "3.7"
services:
rundeck:
build:
context: .
args:
IMAGE: ${RUNDECK_IMAGE:-rundeck/rundeck:3.3.10}
container_name: rundeck-nginx
ports:
- 4440:4440
environment:
RUNDECK_GRAILS_URL: http://localhost
RUNDECK_SERVER_FORWARDED: "true"
nginx:
image: nginx:alpine
volumes:
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- 80:80
/your/path/Dockerfile
内容:
ARG IMAGE
FROM ${IMAGE}
如果检查卷块,则需要在 /config 路径中进行特定的 NGINX 配置:
/your/path/config/nginx.conf
内容:
server {
listen 80 default_server;
server_name rundeck-cl;
location / {
# get the rundeck internal address/port
proxy_pass http://rundeck:4440;
}
}
建造:
docker-compose build
至运行:
docker-compose up
查看您的 Rundeck 实例:
打开浏览器输入localhost
,可以看到NGINX代理服务器后面的Rundeck
编辑:我在 CENTOS/RHEL
上留下了一个使用 NGINX 的例子
1- 通过 YUM 在 Rundeck 服务器上安装 Rundeck。
2- 通过 YUM 安装 NGINX,只需执行 sudo yum -y install nginx
(如果你愿意,你可以在同一台 Rundeck 服务器或另一台服务器上执行此操作)。
3- NGINX 方面。转到 /etc/nginx/nginx.conf
并在 server
部分添加以下块:
location /rundeck {
proxy_pass http://your-rundeck-host:4440;
}
保存文件。
4- RUNDECK 侧。 Create 在名为 rundeckd
的 /etc/sysconfig
路径中创建一个新文件,其内容如下:
RDECK_JVM_OPTS="-Dserver.web.context=/rundeck"
授予 运行deck 用户权限:chown rundeck:rundeck /etc/sysconfig/rundeckd
并保存。
5- RUNDECK 侧。打开 /etc/rundeck/rundeck-config.properties
文件并检查 grails.serverURL
参数,您需要输入外部 IP 或服务器 DNS 名称以及在 NGINX 端配置中定义的正确上下文。
grails.serverURL=http://your-nginx-ip-or-dns-name/rundeck
保存。
6- NGINX 端。启动 NGINX 服务:systemctl start nginx
(稍后如果你想在每次启动时启用,只需执行 systemctl enable nginx
)。
7- RUNDECK 侧。启动 Rundeck 服务,systemctl start rundeckd
(这需要几秒钟,稍后您可以使该服务在每次服务器启动时启动,只需执行:systemctl enable rundeckd
)。
现在 运行deck 位于 NGINX 代理服务器后面,只需打开浏览器并输入:http://your-nginx-ip-or-dns-name/rundeck
.
经过几天的搜索:
- 如果您使用的服务器与互联网断开连接
- 有一个内部代理来路由外部流量
- 使用rundeck的RHEL包
解决方案
编辑您的 /etc/sysconfig/rundeckd 文件
在文件末尾粘贴自定义 RDECK_JVM_SETTINGS
RDECK_JVM_SETTINGS="${RDECK_JVM_SETTINGS:- -Xmx1024m -Xms256m -XX:MaxMetaspaceSize=256m -server -Dhttp.proxySet=true -Dhttp.proxyHost=server - Dhttp.proxyPort=8080 -Dhttps.proxySet=true -Dhttps.proxyHost=服务器 -Dhttps.proxyPort=80 -Dhttp.nonProxyHosts=*.place.com }"
假设您的 rundeck 在 运行 内部服务器中,域名为“internal-rundeck.com:4440”,并且您想将其公开到“external-rundeck.com/rundeck”通过 nginx 域---按照以下步骤
第一步:
跑台
RUNDECK_GRAILS_URL="external-rundeck.com/rundeck"
RUNDECK_SERVER_CONTEXTPATH=/="/rundeck"
RUNDECK_SERVER_FORWARDED=true
在部署文件中设置以上配置为环境变量
第 2 步:
在 nginx 中
location /rundeck/ {
proxy_pass http://internal-rundeck.com:4440/rundeck/;
}
将它添加到你的 nginx 配置文件中它有效
我正在内部设置 Rundeck 以供自己测试。 我目前正在尝试访问插件的官方存储库,但我知道服务器没有互联网连接这一事实。
我在文档中找不到有关如何将 webproxy 应用于 rundeck 应用程序的说明。
以前有人做过吗?
编辑
服务器是 RHEL8 机器。 我不是指使用反向代理。
** 找到答案**
经过几天的搜索:
- 如果您使用的服务器与互联网断开连接
- 有一个内部代理来路由外部流量
- 使用rundeck的RHEL包
解决方案
编辑您的 /etc/sysconfig/rundeckd 文件
在文件末尾粘贴自定义 RDECK_JVM_SETTINGS
RDECK_JVM_SETTINGS="${RDECK_JVM_SETTINGS:- -Xmx1024m -Xms256m -XX:MaxMetaspaceSize=256m -server -Dhttp.proxySet=true -Dhttp.proxyHost=server -Dhttp.proxyPort=8080 -Dhttps.proxySet=true -Dhttps.proxyHost=server -Dhttps.proxyPort=80 -Dhttp.nonProxyHosts=*.place.com }"
您可以使用 Docker Compose 快速测试它。
想法是将 NGINX 容器放在 Rundeck 容器前面。
/your/path/docker-compose.yml
内容:
version: "3.7"
services:
rundeck:
build:
context: .
args:
IMAGE: ${RUNDECK_IMAGE:-rundeck/rundeck:3.3.10}
container_name: rundeck-nginx
ports:
- 4440:4440
environment:
RUNDECK_GRAILS_URL: http://localhost
RUNDECK_SERVER_FORWARDED: "true"
nginx:
image: nginx:alpine
volumes:
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- 80:80
/your/path/Dockerfile
内容:
ARG IMAGE
FROM ${IMAGE}
如果检查卷块,则需要在 /config 路径中进行特定的 NGINX 配置:
/your/path/config/nginx.conf
内容:
server {
listen 80 default_server;
server_name rundeck-cl;
location / {
# get the rundeck internal address/port
proxy_pass http://rundeck:4440;
}
}
建造:
docker-compose build
至运行:
docker-compose up
查看您的 Rundeck 实例:
打开浏览器输入localhost
,可以看到NGINX代理服务器后面的Rundeck
编辑:我在 CENTOS/RHEL
上留下了一个使用 NGINX 的例子1- 通过 YUM 在 Rundeck 服务器上安装 Rundeck。
2- 通过 YUM 安装 NGINX,只需执行 sudo yum -y install nginx
(如果你愿意,你可以在同一台 Rundeck 服务器或另一台服务器上执行此操作)。
3- NGINX 方面。转到 /etc/nginx/nginx.conf
并在 server
部分添加以下块:
location /rundeck {
proxy_pass http://your-rundeck-host:4440;
}
保存文件。
4- RUNDECK 侧。 Create 在名为 rundeckd
的 /etc/sysconfig
路径中创建一个新文件,其内容如下:
RDECK_JVM_OPTS="-Dserver.web.context=/rundeck"
授予 运行deck 用户权限:chown rundeck:rundeck /etc/sysconfig/rundeckd
并保存。
5- RUNDECK 侧。打开 /etc/rundeck/rundeck-config.properties
文件并检查 grails.serverURL
参数,您需要输入外部 IP 或服务器 DNS 名称以及在 NGINX 端配置中定义的正确上下文。
grails.serverURL=http://your-nginx-ip-or-dns-name/rundeck
保存。
6- NGINX 端。启动 NGINX 服务:systemctl start nginx
(稍后如果你想在每次启动时启用,只需执行 systemctl enable nginx
)。
7- RUNDECK 侧。启动 Rundeck 服务,systemctl start rundeckd
(这需要几秒钟,稍后您可以使该服务在每次服务器启动时启动,只需执行:systemctl enable rundeckd
)。
现在 运行deck 位于 NGINX 代理服务器后面,只需打开浏览器并输入:http://your-nginx-ip-or-dns-name/rundeck
.
经过几天的搜索:
- 如果您使用的服务器与互联网断开连接
- 有一个内部代理来路由外部流量
- 使用rundeck的RHEL包
解决方案
编辑您的 /etc/sysconfig/rundeckd 文件
在文件末尾粘贴自定义 RDECK_JVM_SETTINGS
RDECK_JVM_SETTINGS="${RDECK_JVM_SETTINGS:- -Xmx1024m -Xms256m -XX:MaxMetaspaceSize=256m -server -Dhttp.proxySet=true -Dhttp.proxyHost=server - Dhttp.proxyPort=8080 -Dhttps.proxySet=true -Dhttps.proxyHost=服务器 -Dhttps.proxyPort=80 -Dhttp.nonProxyHosts=*.place.com }"
假设您的 rundeck 在 运行 内部服务器中,域名为“internal-rundeck.com:4440”,并且您想将其公开到“external-rundeck.com/rundeck”通过 nginx 域---按照以下步骤
第一步: 跑台
RUNDECK_GRAILS_URL="external-rundeck.com/rundeck"
RUNDECK_SERVER_CONTEXTPATH=/="/rundeck"
RUNDECK_SERVER_FORWARDED=true
在部署文件中设置以上配置为环境变量
第 2 步: 在 nginx 中
location /rundeck/ {
proxy_pass http://internal-rundeck.com:4440/rundeck/;
}
将它添加到你的 nginx 配置文件中它有效