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_argsdefault:'-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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在通配符泛型类型和泛型类型之间未经检查的强制转换   java Eclipse SWT Hello world教程:无法将显示解析为类型   java如何向远程用户发送注销消息?   java RDD之后的空文件是什么。保存ASTEXTFILE?   用户界面在java中创建一个htmljs UI GCalendar   Java多个哈希映射指向同一个键   Java Dowhile循环不工作?   oraclejava类。组织。阿帕奇。梁sdk。util。UserCodeException:java。sql。SQLException:无法创建PoolableConnectionFactory   java是org类型。日食用户界面。文本编辑器。*看不见   java有没有从弹出窗口复制eclipse中变量值的插件或快捷方式?   java getSubimage为我提供了期望值null   java我想让它变得更简单   swing AWTEventQueue0一直在运行,java中的程序变得非常慢   java Solr实例化类时出错:自定义类   java将ListView适配器移植到RecyclerView适配器   c#测试混合web和桌面应用程序的安全性