在我们的基础设施中,我们在 minion 上设置了多个grain,包括“环境”和“组件”grain。基于此,可以有多个具有相同组件名称的 Minion,每个 Minion 位于不同的环境中。我希望能够基于多个grain来选择minions,而不必在master上定义多个节点组。
我努力了:
salt -G 'component:api,environment:prod' test.ping
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,我相当广泛地查看了他们的文档,但没有找到这种类型的小兵目标的示例。
这是否可能,如果可以,我将如何去做?
我正在尝试使用 docker-maven 插件构建 docker 映像,并计划使用 jenkins 执行 mvn 命令。我将 jenkins.war 部署在 tomcat 实例上,而不是作为非 root 用户运行的独立应用程序。问题是 docker 需要以 root 用户身份运行,因此 maven 命令需要以 root 用户身份运行,因此 jenkins/tomcat 需要以 root 用户身份运行,这不是一个好的做法(尽管我的非 root 用户是也是 sudoer 所以我想不会太重要)。
所以底线,我看到两种解决方案:要么以非root用户身份运行docker(并且需要如何执行此操作的帮助),要么需要以root身份运行jenkins(并且不确定如何实现这一点,因为我更改了环境变量 /config 和仍然没有切换到root)。
对于选择哪种解决方案以及如何实施有什么建议吗?
我可以使用 Jenkins 和 Capistrano 部署 JAVA Web 应用程序。如果我的 CI 工具是 Jenkins,它有远程部署插件,为什么我要使用 Capistrano 进行部署?我想了解 Jenkins 和 Capistrano 的优缺点。
我知道目前 SLA 是通过一个简单的方法来实现任务的
sla=datetime.timedelta(hours=1)
在任务实例内,但我想知道是否有一种方法可以在气流中实现 DAG 级别 SLA,如果 dag 中的所有任务未在给定的时间增量内完成,则会发送警报?
最好的问候,阿里
我有一个托管在节点 Docker 容器上的 React 应用程序。我运行它并向它传递一个环境变量
docker run -t -e "ADMIN_HOST_ENV=http://myapp.app:443/api" -p 3000:3000 "myapp"
Run Code Online (Sandbox Code Playgroud)
如何在应用程序中获取“ADMIN_HOST_ENV”环境变量?
当我执行视频显示的管道作业时,它失败并给出一条消息:
错误:准备失败:连接到 Kubernetes 时出错:配置无效:未提供配置
这是故意的吗?我错过了任何配置吗?
kubernetes 是为我的跑步者和我正在处理的项目配置的,但我没有看到任何配置
问题:
我的 docker 镜像中有三个文件,vault:0.10.2位于以下位置:
/home/myuser/token_helper:Go 中的令牌助手二进制文件,根据本文档实现令牌助手接口
/home/myuser/vault_startos.exec("vault", "operator", "init"):运行的Go 脚本os.exec("vault", "server", "-config=myconfig.hcl")
/home/myuser/.vault:令牌帮助程序配置文件指定令牌帮助程序二进制位置,我已导出VAULT_CONFIG_PATH以指向此路径。文件内容如下token_helper = "/home/myuser/token_helper":
我看到的问题是在运行vault_start脚本时出现以下错误:
failed to get token helper: error expanding config path "": exec: "getent": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
到目前为止已完成的调试:
这个错误似乎不正确。which getent返回/usr/bin/getent,并且图像$PATH包含它,证明两者都存在。另外,配置路径不是"",它被设置为/home/myuser/.vault但 Vault 显然将其检测为空。
我已将该错误输出跟踪到Vault 目录中的此文件command: 。$HOME根据该代码块,只有在未设置时才会出错,但我已经确认已$HOME在 shell 中设置了该值。
此外,我已经指定了 Vault 所要求的所有内容,以便根据本文档 …
如果另一个作业(具有特定名称)已经在运行,如何防止作业抢占执行程序?
我正在寻找类似Build Blocker 插件但用于声明式管道的东西。
我已经尝试过可锁定资源插件,但它并不能阻止作业获取执行器,作业获得执行器,然后等待资源释放以实际执行任何操作。
我们有数百个作业,因此手动配置每个作业是不切实际的,而且也很难维护。
我见过这些类似的问题,但我尝试使用相对较新的声明性管道来做到这一点
我正在尝试通过 create-next-app 部署 next-js 应用程序,我有一个像这样的自定义 Express 服务器 -
const express = require('express')
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const nextApp = next({ dev })
const handle = nextApp.getRequestHandler()
const fs = require('fs')
nextApp.prepare()
.then(() => {
const server = express ()
let port = 3000;
let options = {
key: fs.readFileSync('some key..', 'utf-8'),
cert: fs.readFileSync('some cert..', 'utf-8'),
};
server.get(
...
)
let app = https.createServer(options, server)
.listen((port), function(){
console.log("Express server listening on port " + port); …Run Code Online (Sandbox Code Playgroud) 我们有一个 CRA(创建 React App)应用程序,我们需要将它部署到许多不同的环境中。我们正在使用Kubernetes来生成这些环境,因此我们将拥有许多环境,数量不是固定的。
问题是这些环境必须在相同的域名下并且必须具有相同的路径结构。(这是一项业务要求,我们无法影响它)。
环境示例:
https://www.example.com/company/app-env01/react_application/
https://www.example.com/company/app-env02/react_application/
https://www.example.com/company/app-env03/react_application/
https://www.example.com/company/app-env-foo/react_application/
https://www.example.com/company/app-env-bar/react_application/
https://www.example.com/company/app/react_application/
Run Code Online (Sandbox Code Playgroud)
所以固定结构是: https://www.example.com/company/app[-____]/react_application/
使其在单个环境中工作的方法是在脚本中指定PUBLIC_URLpackage.json build:
https://www.example.com/company/app-env01/react_application/
https://www.example.com/company/app-env02/react_application/
https://www.example.com/company/app-env03/react_application/
https://www.example.com/company/app-env-foo/react_application/
https://www.example.com/company/app-env-bar/react_application/
https://www.example.com/company/app/react_application/
Run Code Online (Sandbox Code Playgroud)
这仅适用于一个环境(env01在这种情况下),但我们需要将单个构建工件(静态文件包)部署到许多不同的环境,这些环境具有不同的PUBLIC_URLs。
这是否可以在不为每个环境构建应用程序的情况下实现?
我们的部署工件是一个Docker 镜像,它只是Nginx为之前构建的React 静态文件提供服务。
浏览器正在访问我们的Kubernetes Ingress,它剥离了路径并将请求转发到运行Nginx的 Docker 容器(在 K8S Pod …
devops ×10
docker ×3
jenkins ×3
reactjs ×2
airflow ×1
alpine-linux ×1
automation ×1
capistrano ×1
deployment ×1
gitlab ×1
go ×1
javascript ×1
kubernetes ×1
maven ×1
next.js ×1
nginx ×1
node.js ×1
proxy ×1
python ×1
salt-stack ×1
tomcat ×1