远程代理的自动注册
作为GoCD管理员,您可以通过在GoCD代理和GoCD服务器之间使用共享密钥来自动批准远程代理。
- 在服务器配置片段中添加一个名为“agentAutoRegisterKey”的属性,例如,agentAutoRegisterKey=“388b633a88de126531afa41eff9aa69e”,如果它不存在的话。
<?xml version="1.0" encoding="utf-8"?>
<cruise xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cruise-config.xsd" schemaVersion="75">
<server agentAutoRegisterKey="388b633a88de126531afa41eff9aa69e">
...
</cruise>
-
在远程GoCD代理机器上,创建一个名为
<agent_installation_directory>/config/autoregister.properties
的文件。在原生代理安装中,此文件通常位于/var/lib/go-agent/config/
目录中。该config/
文件夹可能不存在,在这种情况下,您需要自己创建它。如果通过程序生成此文件,请注意它必须是UTF-8编码。尽管换行符并不重要,但某些平台可能会生成具有其他编码或平台默认编码(如带BOM的UTF-16)的文件,这些文件将无法正常工作。
此文件支持以下属性
键 | 必需 | 描述 |
---|---|---|
agent.auto.register.key |
是 | 的值<server/> 元素的agentAutoRegisterKey 属性从cruise-config.xml |
agent.auto.register.environments |
否 | 应与此代理关联的环境的逗号分隔列表。 |
agent.auto.register.resources |
否 | 注册为弹性代理的代理不得设置此项。应标记此代理的资源的逗号分隔列表。 |
agent.auto.register.hostname |
否 | 代理在注册到服务器时的名称。(版本15.2.0 起) |
agent.auto.register.elasticAgent.agentId |
否 | 注册为弹性代理的代理必须设置此项。这可以包含插件可以识别的代理标识符。它可以类似于Docker容器ID或AWS实例ID。(版本16.12.0 起) |
agent.auto.register.elasticAgent.pluginId |
否 | 希望注册为弹性代理的代理必须设置此项。这应该包含启动代理的弹性代理插件的插件ID。(版本16.12.0 起) |
示例
# Auto-registration properties in key=value format, encoded in UTF-8
agent.auto.register.key=388b633a88de126531afa41eff9aa69e
agent.auto.register.resources=ant,java
agent.auto.register.environments=QA,Performance
agent.auto.register.hostname=Agent01
# if you're using elastic agents, these would be needed as well
agent.auto.register.elasticAgent.agentId=i-123456
agent.auto.register.elasticAgent.pluginId=com.example.aws
- 启动远程代理后,现在应该能够自动与GoCD服务器注册,而无需管理员手动“启用”新添加的代理并配置其资源以及将其分配给环境。