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反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?