puppet

Capturing output/error when invoking PowerShell script

自作多情 提交于 2019-11-28 02:17:11
问题 I am trying to invoke a PowerShell script from Puppet. The issue is even if the PowerShell script fails on remote box, it still shows successful run as shown below: Notice: /Stage[main]/Main/Node[dev.abc.com]/Exec[Check UAC]/returns: executed successfully Content of my node block in site.pp : exec { 'Check UAC': command => '& C:\temp\check_uac.ps1', provider => powershell, logoutput => 'on_failure', } The script failed when I tried running from PowerShell console stating that execution policy

Linux Puppet基础知识

喜你入骨 提交于 2019-11-27 21:44:19
Linux Puppet基础知识 Puppet可以批量配置多个节点,减少运维人员在重复的、繁琐的工作中花费的时间;可以轻松的管理几千个节点; 官网地址: https://puppet.com/ Puppet相对于ansible来说,其不仅要运行master端,且在每个被管控节点上还要安装并运行agent端; master:puppet server agent:agent周期性(默认为30分钟)的到master端请求与自己相关的配置,进而在本地执行(所以说agent才是真正管理节点的部件),然后将执行结果报告给master端; Note:master与agent使用自己的私有认证机制进行认证,其实也就是ssl,只不过master自建了一个私有CA进行证书签发; Puppet工作模式: 定义:使用puppet配置语言定义基础配置信息(资源状态); 模拟:先在本地模拟执行一遍,如果执行没有错误再应用到各个节点; 强制:比对节点状态与定义的资源状态是否一致,如果不一致则agent执行相关配置;强制使当前与定义的目标状态保持一致; 报告:通过puppet API将日志发送到第三方监控工具,进行监控;还会向master报告相应的执行结果; Puppet的三层模型: 顶层(Configuration Language,配置语言):定义基础配置信息; 中层(Transactional Layer

Puppet Manager

最后都变了- 提交于 2019-11-27 21:43:12
在master模式下,我们给每个agent应用的manifest可能不止一个,所以在master端需要根据agent的主机名来建立一个站点清单(也可能是多个站点清单),将某个agent要应用的所有manifest都填入这个清单中,然后直接应用这个清单即可; agent:默认每隔三十分钟向master发送node name和facts,并请求catalog; master:验证客户端身份,查找与其相关的site manifest,编译生成catalog,并发送给客户端; 软件安装:直接使用yum安装即可 在master端需要安装puppet和puppet-server;也可以安装facter,用来管理自己; puppetmaster监听在TCP的8140端口; 在agent端需要安装puppet和facter; puppetagent监听在TCP的8139端口; 配置文件: /etc/puppet/puppet.conf 此配置文件类似于ini格式: main段:适用于master和agent,为全局配置; agent段:适用于agent,仅在agent上生效; master段:适用于master,仅在master上生效; 且此文件支持类似变量的功能,可以通过puppet config print查看支持的所有变量(也是默认配置),且可以使用”puppet config set

saltstack简介与部署

瘦欲@ 提交于 2019-11-27 10:56:46
互联网技术的发展,机房里面机器的数量随之增加,运维的难度和复杂度也在增加,需要投入的运维人员和成本也在增加,从而催生了一系列的自动化运维工具(Ansible、SaltStack、Puppet)的产生来减少运维的成本。 Ansible、SaltStack、Puppet都是目前比较受用户欢迎的自动化化运维工具,其中Ansible和SaltStack使用python编写,具有良好的可移植性。Puppet的使用脚本语法复杂,且可移植性比较差,目前的使用者慢慢变少。 SaltStack saltStack由Python编写,为server-client模式的系统(在salstack中叫Master-Minion),自己本身 支持多master,而puppet则需要依赖于web服务器。saltstack除了可以通过在节点安装客户端进行管理还支持直接通过ssh进行管理。 运行模式为master端下发指令,客户端接收指令执行。 saltstack依赖于zeromq消息队列,采用yaml格式编写配置文件,比较简单。 支持api及自定义python模块,能轻松实现功能扩展。 Ansible ansible安装与部署 类似与saltstack,基于python开发,关注的重点是精简和快速。不需要在节点安装代理软件,通过ssh执行所有功能。安装运行简单。 其模块可以用任何语言开发

Installing a puppet module from a manifest script

青春壹個敷衍的年華 提交于 2019-11-27 09:25:40
问题 I'm using puppet to provision a vagrant (ubuntu based) virtual machine. In my script I need to: sudo apt-get build-dep python-lxml I know I can install the apt puppet module so I can use: apt::builddep { 'python-lxml': } But I can't find any reference about installing a module from the script and how to include/require it. Seems to me that the puppet docs refer only to installing from the command line puppet tool I also tried doing something like: define build_dep($pkgname){ exec {

深入SaltStack

可紊 提交于 2019-11-27 08:36:21
[译者注] 这是一篇发表在opencredo官网的博文,通过比较流行的Puppet和新发展起来的Salt,详细地介绍了Salt的功能。在征得原作者的同意后,翻译出来,与大家分享。初次翻译长文,请大家指点。 原文链接 深入SaltStack Maartens Lourens. 于1月10日发表在opencredo. 对系统工程师来说,配置管理已经向前跃进了一大步. 系统配置的自动化不仅可预测,可重复, 还具有可管理性. 配置管理工具通常使用版本控制化的配置模板来描述基础设施的目标状态。凭借版本控制化的配置,可以将环境回滚(或前滚)到前面(或后序)状态;环境配置文件的自动化管理也是持续性交付管道的必要特性。 CFEngine, Puppet和Chef(按年龄降序)是开源领域流行的配置管理工具。 我是一个Puppet的长期用户, 与自定义的配置脚本相比,它在系统自动化的组织性和可靠性方面带来了巨大的提升。(我是在2009年作出这一次飞跃,与此相比, 以前的日子简直是混乱不堪…). 虽然配置管理工具精于描述并达到想要的状态, 但并不擅长动态地查询或设置状态. 这一点在状态资源还没有被纳入配置管理时特别明显。Llinux系统管理员的传统解决办法是ssh循环登陆节点列表并执行一堆命令。这不仅容易出错, 且每一次循环都要打开新的ssh会话,效率低下。想像一下要在1000台机器上顺序执行命令

深入SaltStack

时光怂恿深爱的人放手 提交于 2019-11-27 08:35:46
[译者注] 这是一篇发表在opencredo官网的博文,通过比较流行的Puppet和新发展起来的Salt,详细地介绍了Salt的功能。在征得原作者的同意后,翻译出来,与大家分享。初次翻译长文,请大家指点。 原文链接 深入SaltStack Maartens Lourens. 于1月10日发表在opencredo. 对系统工程师来说,配置管理已经向前跃进了一大步. 系统配置的自动化不仅可预测,可重复, 还具有可管理性. 配置管理工具通常使用版本控制化的配置模板来描述基础设施的目标状态。凭借版本控制化的配置,可以将环境回滚(或前滚)到前面(或后序)状态;环境配置文件的自动化管理也是持续性交付管道的必要特性。 CFEngine, Puppet和Chef(按年龄降序)是开源领域流行的配置管理工具。 我是一个Puppet的长期用户, 与自定义的配置脚本相比,它在系统自动化的组织性和可靠性方面带来了巨大的提升。(我是在2009年作出这一次飞跃,与此相比, 以前的日子简直是混乱不堪…). 虽然配置管理工具精于描述并达到想要的状态, 但并不擅长动态地查询或设置状态. 这一点在状态资源还没有被纳入配置管理时特别明显。Llinux系统管理员的传统解决办法是ssh循环登陆节点列表并执行一堆命令。这不仅容易出错, 且每一次循环都要打开新的ssh会话,效率低下。想像一下要在1000台机器上顺序执行命令

Managing a user password for linux in puppet

北战南征 提交于 2019-11-27 00:07:10
问题 I need to create a test user with a password using puppet. I've read that puppet cannot manage user passwords in a generic cross-platform way, which is a pity. I am doing this for Red Hat Enterprise Linux Server release 6.3. I do as follows: user { 'test_user': ensure => present, password => sha1('hello'), } puppet updates the password of the user, but Linux says login/pwd incorrect when I try to log in. It works (I can login) if I set the password manually in Linux with sudo passwd test_user

Run `apt-get update` before installing other packages with Puppet

杀马特。学长 韩版系。学妹 提交于 2019-11-26 23:56:40
问题 I'm trying to create puppet module which automates installation of zend server CE, this is not important here, but steps are as following update /etc/apt/source.list download repos key via wget do apt-get update do apt-get install zend-server-ce-5.2 I have init.pp file class zendserverce { # https://github.com/puppetlabs/puppetlabs-stdlib file_line { 'debian_package': path => '/etc/apt/sources.list', line => 'deb http://repos.zend.com/zend-server/deb server non-free' } exec { "wget http:/

DevOps 系列工具之 Puppet 安装与基础配置

偶尔善良 提交于 2019-11-26 03:23:54
Puppet 简介: Puppet是基于Ruby语言(早期的版本,4及之后的Server端采用Clojure语言)开发的、可以管理Unix(包括OS X)、Linux和Microsoft Windows平台的配置管理工具。同时面向研发及运维人员,是实现 DevOps 的重要工具之一。 应用场景: 统一配置管理软件 统一配置系统优化参数 定期检测服务是否运行 根据机器硬件环境自动为相应主机上的软件配置合理的属性 Puppet的操作模型: 部署层 Puppet 通常运行在C/S模式下,服务器端称为 Puppet master,客户端称为 Agent,客户端主机称为 Node。Agent 通过标准的 SSL 加密认证的方式与 Master 建立连接,获取本机需要的配置信息。 在 Agent 未取得配置信息、或者已经达到配置状态时,Puppet 不会对系统进行改动,它只有在被要求的时候才修改系统,这是 Puppet 的一个关键特征,称为幂等性(Idempotency),这个修改过程称为一次配置运行(Configuration run)。 Agent 通常以守护进程的方式运行,默认每30分钟与 Master 进行一次交互,以确认配置项是否发生了变化,这个时间间隔可以根据自己的需求灵活调整。也可以以 cron 的方式运行或者手工触发 Agent。 配置语言与资源抽象层 大多数脚本语言(如