puppet与rvm中ruby的环境变量
By admin
看了半个多月教程,开始按部就班的操作的时候碰到不少麻烦。
比如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教程里的多了几行参数,我也不清楚具体起的哪些环节的认证作用。