R10K包装
r10k-webhook的Python项目详细描述
概述
这是r10k utility的api。有了它,您可以在推送到git后将puppet代码自动部署到puppet服务器。假设您将r10k用于git分支的部署傀儡环境,并希望在推送之后自动完成。
服务器应用程序作为守护进程工作,侦听请求并调用本地r10k实用程序。它是一个完整的包装器:生成配置、启动r10k、控制并执行运行后操作。客户机应用程序以VCS钩子的形式启动,并调用服务器应用程序通知已推送的分支。
功能
- 允许使用regex将git分支映射到puppet环境。例如,分支“master”可以映射到puppet环境“production”。
- 接受regex模式,根据该模式筛选分支的名称。只有与regex匹配时才会部署分支。
- 只同时运行一个r10k实例。重复数据消除并将所有请求保留在队列中,以便不会错过任何请求。
- 为environment isolation在r10k之后启动“生成类型”。
- 在r10k完成后,将环境的命令刷新缓存发送到puppet服务器的api。
- 仅依赖于一个第三方包-pyaml。
开始
在Puppet服务器上安装。
首先,安装并设置r10k utility到您的存储库。确保以下命令有效。
r10k deploy environment <env_name> -v
^ {EM1}$EnvyName < EEM >必须是您的回购中存在的分支之一的名称。
如果没有错误,请继续安装R10K Webhook。
pip3 install r10k-webhook systemctl daemon-reload
启用并启动服务。
systemctl enable r10k-webhook
systemctl start r10k-webhook
检查日志和状态。
journalctl -xeu r10k-webhook curl localhost:8088/status
如果守护进程没有启动,请继续使用Configuration。
安装在VCS。
使用puppet代码库将包安装到服务器。
pip3 install r10k-webhook
使用<;env_name>;触发Puppet服务器。
r10k_webhook -s <puppetserver.hostname> -b <env_name>
以在Installation at puppet server.使用的<;puppetserver.hostname>;和<;env-name>;为例,您将看到以下输出:
Deployed the branch to 1 servers out of 1.
这意味着您已经将分支的内容部署到puppet服务器主机上的环境目录中。
与Gitolite一起使用。
用json文件中的服务器创建列表,如下所示
["server1","server2"]
向您的控制回购协议添加一个挂钩,包括
#!/usr/bin/env bash
r10k_webhook --servers_file <path_to_servers.json>
配置
创建“/etc/r10k_webhook/config.json”并将参数放在那里。
- hostdefault:“0.0.0.0”-http服务器侦听的IP地址或主机名。
- portdefault:8088-port,http服务器在其上侦听。
- branch_to_env_映射default:{}-vcs中的分支名称映射和puppet环境的关联名称。可能是regexp。例如,“^env(.*)$”:“\g<;1>;”将前缀env从所有具有该前缀的分支中删除。
- 允许的分支默认值:'.'-筛选分支名称的regexp。如果匹配regexp,将部署分支。
- flush_env_cachedefault:true-确定是否在r10k运行后通过puppet api发送命令刷新环境缓存。
- generate_typesdefault:true-确定是否在r10k运行之后启动命令“puppet generate types <env>”。
- 初始部署默认值:true-启动时部署所有环境。
- {STR 1 } OutReDyEngulyDirectory < <强> ^ {EM1}$默认:false
-在部署之前删除现有的环境目录。 - r10k路径:default:'r10k'-r10k二进制路径
- puppet路径:de错误:'/opt/puppetlabs/bin/puppet'-puppet二进制文件的路径
- r10k_tmpcfg:默认值:'/tmp/r10k.yaml'-包装器正在创建和使用的r10k的已修改配置yaml文件的路径。
- r10k_args:default:'-v'-每次执行时都将带参数的字符串传递给r10k。那里不允许有空格。
- r10k配置路径:default:'/etc/puppetlabs/r10k/r10k.yaml'-r10k配置yaml文件的路径。
- puppet_api_uridefault:'https://localhost:8140/puppet admin api/v1'-uri被调用以刷新环境的缓存。
必须重新启动服务r10k webhook才能应用配置更改:
systemctl restart r10k-webhook
配置文件示例。
{"flush_env_cache":false,"branch_to_env_map":{"master":"production","^env_(.*)$":"\g<1>"},"allowed_branches":"^(env_[\w]+|master)$"}
r10k.
配置文件示例:cachedir:/opt/puppetlabs/puppet/cache/r10k:sources:puppet:basedir:/etc/puppetlabs/code/environmentsinvalid_branches:errorremote:git@git.example.net:puppet