<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>puppet on 老王的日志</title>
    <link>http://superwf.github.io/categories/puppet/</link>
    <description>Recent content in puppet on 老王的日志</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 12 Nov 2018 10:09:17 +0000</lastBuildDate>
    
	<atom:link href="http://superwf.github.io/categories/puppet/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>puppet gpg</title>
      <link>http://superwf.github.io/p895/</link>
      <pubDate>Fri, 11 Jul 2014 08:10:17 +0000</pubDate>
      
      <guid>http://superwf.github.io/p895/</guid>
      <description>用puppet部署mysql
有puppetlabs-mysql这个现成的包，但用过之后觉得不好，因为自定义配置文件太麻烦，想不让它接管配置文件还不行。
后来在自己的包里部署，需要用到预先确认安装密码的问题
http://stackoverflow.com/questions/1202347/how-can-i-pass-a-password-from-a-bash-script-to-aptitude-for-installing-mysql
jessie可以直接用mariadb代替mysql，据于工说性能还好一些
需要看mariadb预安装的参数，用
debconf-show mariadb-server-5.5
http://www.bdqn.cn/news/201309/11151.shtml
由于puppet的exec默认用的是sh，不太清楚怎么让变成bash执行，所以只能是echo … | sudo debconf-set-selections 这样来写
配置文件用hiera的file存储，为每个机器单独存储。
由于之前一直用kvm的虚拟机，公司工作必须要用ie，qq什么的。vagrant的virtualbox和kvm不能同时开，网上找了能同开的方法，但是修改后会死机，总之还是不能同开。
后来找了vagrant的插件vagrant-kvm和vagrant-libvirt，但是在已经打包成box格式之后都不能兼容自己做的kvm虚拟机。
遂直接不用vagrant。
直接自装一个qcow2格式的kvm，copy该镜像文件作为备份，装乱之后再copy覆盖回去，省大了事了，托我大中国防火墙的仙气，也再不用翻山越岭的去下载vagrant那些镜像。
hiera的gpg加密有问题，一是私钥必须是无密码的，如果有密码，在命令行模式还有机会输入密码，在服务端运行的时候就不能解密了
一旦启用gpg后端的文件，就会莫名其妙的多出好多需要hiera赋值的参数，这些参数本来都是有默认值的，但一旦启用gpg，不知道为什么就会报没有赋值的错误。
另想了个办法把需要加密的东西都写到file里，在.gitignore里忽略hiera的file文件。
mcollective，尝试了之后觉得还是有些用，只是没有刚开始看得时候的惊喜，可能是手下管理的机器不太多吧。
需要提一下的是一开始mco命令总是没有任何自带的插件，什么inventory、facts都没有，是因为debian源里的mcollective-client是2.0的版本，必须用外带的puppetlabs的apt源，升级成2.5,就一切都ok了，剩下的交给puppetlabs-mcollective来配置就能傻瓜式完成。</description>
    </item>
    
    <item>
      <title>puppet自动安装中的untrusted packages</title>
      <link>http://superwf.github.io/p889/</link>
      <pubDate>Fri, 27 Jun 2014 06:00:43 +0000</pubDate>
      
      <guid>http://superwf.github.io/p889/</guid>
      <description>当用到第三方源的时候，安装包会提示untrusted packages
让进一步确认Yes或者汉语的Shi，手动是没事但自动安装脚本就被破坏了。
http://anothersysadmin.wordpress.com/2008/12/30/tip-installing-untrusted-packages-without-confirmation-on-debian/
http://debiananwenderhandbuch.de/apt.conf.html
通过设置apt.conf的参数
puppet用apt-get而不是aptitude所以配置apt
可以用puppet的file增加个文件在/etc/apt/apt.conf.d/里</description>
    </item>
    
    <item>
      <title>puppet与rvm中ruby的环境变量</title>
      <link>http://superwf.github.io/p835/</link>
      <pubDate>Wed, 21 May 2014 08:56:46 +0000</pubDate>
      
      <guid>http://superwf.github.io/p835/</guid>
      <description>看了半个多月教程，开始按部就班的操作的时候碰到不少麻烦。
比如hiera-mysql这个。
WARN: 2014-05-21 16:19:14 +0800: Cannot load backend mysql: cannot load such file — hiera/backend/mysql_backend
nil
gem install hiera-mysql挺成功的，但一用mysql后端就出这个错
google了一大堆还真没看见别人出这个错误的。
都想手动把这个文件加到$:路径里了。
最后发现是之前rvm的残留问题。
最近听了于工的建议捣鼓puppet，由于装puppet用的是deb安装，和rvm不太对付于是换回了系统ruby。
结果导致gem里没有hiera
再gem install hiera一下。
后来感觉hiera-mysql好像只能存取string？，不如yaml能array和hash。
agent第一次请求的时候需要master签名认证。
一直只知道公钥私钥，但是不太清楚签名的具体含义。马上查了一下，发现证书也是一对公钥和私钥，就是多了签名，最重要的是还多了个有效期限制。
我的理解是，agent(一下简称a)第一次请求master(以下简称m)的时候，把a的公钥发过去。这时候m上执行puppet cert list，看到的是agent发来的公钥。
执行puppet sign的时候，是用m的证书私钥加密了该a的公钥，可以成为认证公钥。之后的通信都用这个认证公钥加密。每次a和m通信的数据都会用自己的私钥和对方的公钥双重加密，收到的数据再用自己的私钥和公钥两次解密，得到明文数据。
第二个理解是，是证书这个公钥只加密另一个公钥，不加密数据内容。每次数据传输，先根据证书解密加密后的公钥，在用该公钥解密内容。
应该是第二种比较靠谱，加密用的计算量要少的多。
puppet里的证书都是pem的后缀，说实在的这些密钥的证书后缀也很混乱。pem代表base64编码，与加密方式没啥关系。
以后新装机器该puppet登场了，之前琢磨过的aptitude export import什么的太过时了~
puppet和nginx整合的例子找了几个看了看，现在都不能用了，只有官方的这个能和apache2整合
http://docs.puppetlabs.com/guides/passenger.html
虚拟主机的配置里，关于ssl密钥的配置比其他nginx教程里的多了几行参数，我也不清楚具体起的哪些环节的认证作用。</description>
    </item>
    
  </channel>
</rss>