{ "version": "https://jsonfeed.org/version/1", "title": "Puppet", "description": "Puppet is an open source configuration management tool.", "home_page_url": "go/puppet", "feed_url": "feed/puppet.json", "icon": "https://cdn.v2ex.com/navatar/c989/2a98/571_large.png?m=1408182383", "favicon": "https://cdn.v2ex.com/navatar/c989/2a98/571_normal.png?m=1408182383", "items": [ { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/226472", "title": "\u6709 V \u53cb\u53c2\u52a0 2015 \u5e74\u5728 Portland \u7684 PuppetConf \u4e48\uff1f", "id": "t/226472", "date_published": "2015-10-08T18:06:44+00:00", "content_html": "\u6211\u8fd9\u4e24\u5929\uff08 PST 2015.10.7-2015.10.9 \uff09\u5728 PuppetConf 2015 \uff0c\u6709 V \u53cb\u4e5f\u5728 Portland \u4e48\uff1f" }, { "author": { "url": "member/huangmingyou", "name": "huangmingyou", "avatar": "https://cdn.v2ex.com/avatar/8cca/c911/31517_large.png?m=1612235130" }, "url": "t/145529", "date_modified": "2014-11-11T08:18:13+00:00", "content_html": "\u6211\u628a\u6211\u5f53\u524d\u7528\u7684\u53bb\u4e2d\u5fc3\u5316\u7684puppet\u914d\u7f6e\u505a\u6210\u4e86\u4e00\u4e2agithub\u5e93\uff0c\u65b9\u4fbf\u6709\u9700\u8981\u7684\u4eba\u68c0\u7d22\u3002
\u4e0d\u4f7f\u7528puppet master,\u597d\u5904\u633a\u591a\u7684\u3002
https://github.com/huangmingyou/puppet-masterless", "date_published": "2014-11-11T00:56:53+00:00", "title": "\u53bb\u4e2d\u5fc3\u5316\u7684 puppet \u914d\u7f6e", "id": "t/145529" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/135622", "date_modified": "2014-09-25T06:20:28+00:00", "content_html": "https://github.com/puppetlabs/puppet-server

\u7528 Clojure \u5199\u7684\u4e0b\u4e00\u4ee3 Puppet Master\u3002", "date_published": "2014-09-25T06:19:16+00:00", "title": "Puppet Server", "id": "t/135622" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/135139", "date_modified": "2015-01-04T08:51:58+00:00", "content_html": "
cd /var/lib/puppet/reports && find . -type f \\\n-name \\*.yaml -mtime +7 -print0 | xargs -0 -n50 /bin/rm -f\n
\n", "date_published": "2014-09-23T04:44:37+00:00", "title": "\u6e05\u9664 Puppet Master \u7684 /var/lib/puppet/reports \u76ee\u5f55\u4e0b\u65e7\u6587\u4ef6\u7684\u6307\u4ee4", "id": "t/135139" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/130607", "title": "\u5173\u4e8e Puppet Master \u7684\u6027\u80fd\u8c03\u4f18", "id": "t/130607", "date_published": "2014-08-29T05:19:40+00:00", "content_html": "https://www.ustack.com/blog/advacned-puppet-puppet-master%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/128267", "title": "Puppet Labs \u548c\u4f01\u4e1a\u7ea7\u8def\u7531\u5668\u5382\u5546\u5408\u4f5c\uff0c\u672a\u6765\u53ef\u4ee5\u901a\u8fc7 Puppet \u6765\u8fdb\u884c\u8def\u7531\u5668\u914d\u7f6e", "id": "t/128267", "date_published": "2014-08-16T10:02:09+00:00", "content_html": "http://puppetlabs.com/about/press-releases/puppet-labs-partners-leading-vendors-deliver-automation-networking-and-storage

\u5b66\u4e60 Puppet \u7684\u4ef7\u503c\u8d8a\u6765\u8d8a\u5927\u4e86\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/128260", "date_modified": "2014-08-16T09:40:54+00:00", "content_html": "

apt.puppetlabs.com \u63d0\u4f9b\u4e86\u4ee5\u4e0b\u57fa\u4e8e Debian \u7684 Linux \u7248\u672c\u7684\u6700\u65b0\u5f00\u6e90\u7248\u672c\u7684 Puppet\uff1a

\n\n\n\n

\u5728\u7cfb\u7edf\u4e0a\u52a0\u5165 Puppet Labs \u5b98\u65b9\u6e90\u7684\u6b65\u9aa4\u662f\uff1a

\n\n
    \n
  1. \u4e0b\u8f7d\u5bf9\u5e94\u7684 puppetlabs-release \u5305\uff1a

    \n\n
  2. \n
  3. \u7528 dpkg -i \u5b89\u88c5\u4e0b\u8f7d\u4e0b\u6765\u7684\u5305

  4. \n
  5. \u7136\u540e\u8fd0\u884c\u4e00\u6b21 apt-get update \uff0c\u5c31\u53ef\u4ee5\u5b89\u88c5\u6765\u81ea\u5b98\u65b9\u7684\u6700\u65b0\u5f00\u6e90\u7248\u672c\u7684 Puppet \u4e86\u3002

  6. \n
\n\n

\u4ee5 Ubuntu 12.04 Precise Pangolin \u4e3a\u4f8b\u7684\u8bdd\uff0c\u6574\u4e2a\u542f\u7528\u8fc7\u7a0b\u5c31\u662f\u8fd9\u6837\u7684\uff1a

\n
$ wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb\n$ sudo dpkg -i puppetlabs-release-precise.deb\n$ sudo apt-get update\n
\n", "date_published": "2014-08-16T09:36:11+00:00", "title": "\u5728\u57fa\u4e8e Debian \u7684\u53d1\u884c\u7248\u4e0a\u4f7f\u7528\u6700\u65b0\u7684\u5f00\u6e90\u7248\u672c\u7684 Puppet", "id": "t/128260" }, { "author": { "url": "member/rrfeng", "name": "rrfeng", "avatar": "https://cdn.v2ex.com/avatar/0bb1/03d9/21425_large.png?m=1366707259" }, "url": "t/121371", "date_modified": "2014-07-07T08:03:58+00:00", "content_html": "module A\uff1a
define X {}
class A {
X {}
file {}
exec {}
.....
}

module B:
class B {
X {}
file {}
service {}
...
}

\u5373\u5728\u6a21\u5757 A \u91cc\u5b9a\u4e49\u4e86 X \uff0cclass A \u91cc\u4f7f\u7528\u4e86 X\uff1b\u5728\u53e6\u4e00\u4e2a\u6a21\u5757 B \u91cc\u4e5f\u4f7f\u7528\u4e86 X\u3002

\u8282\u70b9\u914d\u7f6e\u5982\u4e0b\uff1a
node test {
include B
include A
Class['B'] -> Class['A']
}

---------
\u770b\u8d77\u6765\u6ca1\u4ec0\u4e48\u95ee\u9898\uff0c\u4f46\u662f\u5728\u5e94\u7528\u7684\u65f6\u5019\u4f1a\u63d0\u793a X \u672a\u5b9a\u4e49\uff01
\u6709\u4e24\u79cd\u65b9\u5f0f\u53ef\u4ee5\u4f7f\u5176\u6b63\u5e38\uff1a
1. include \u7684\u65f6\u5019 A \u5728 B \u4e4b\u524d\uff1b
2. -> \u5173\u7cfb\u5199\u5230 include \u4e24\u8005\u4e4b\u524d\uff1b

--------------
\u7591\u95ee\uff1a
\u6211\u7684\u5199\u6cd5\u662f\u4e0d\u662f\u4e0d\u5bf9\uff0c\u6216\u8005\u4e0d\u5408\u89c4\u8303\uff1f
define \u4e00\u4e2a\u516c\u7528\u7684\u7c7b\u578b\u5e94\u8be5\u5199\u5728\u54ea\u91cc\uff1f\u5982\u4f55\u88ab\u5f15\u7528\u5462\uff1f
class \u6216\u8005 resource \u91cc\u5df2\u7ecf\u6709\u4e86 require \u7b49\u53c2\u6570\u6307\u5b9a\u4e86\u4f9d\u8d56\u5173\u7cfb\uff08\u5305\u62ec -> \uff09\uff0c\u90a3\u4e48\u4e3a\u4ec0\u4e48\u8fd8\u8ddf\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\u7684\u987a\u5e8f\u6709\u5173\u7cfb\u5462\uff1f\u4e0d\u5e94\u8be5\u5148\u5206\u6790\u4f9d\u8d56\u5173\u7cfb\u518d\u6267\u884c\u5417\uff1f

\u4e00\u4e2a\u60f3\u6cd5\u662f define X \u5e94\u8be5\u5199\u5230 class A \u91cc\u9762\uff0c\u4e5f\u5c31\u662f A::X \u8fd9\u6837\u7ed9\u5176\u4ed6\u6a21\u5757\u4f7f\u7528\uff0c\u7ec6\u60f3\u4e86\u4e00\u4e0b\u4e0a\u8ff0\u95ee\u9898\u4ecd\u7136\u4f1a\u5b58\u5728\uff01

\u6c42\u89e3\u60d1\u3002", "date_published": "2014-07-07T08:03:38+00:00", "title": "Puppet \u91cc\u4f7f\u7528 define \u65f6\u7684\u4f9d\u8d56\u5173\u7cfb\u2026\u2026", "id": "t/121371" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/117862", "title": "\u5173\u4e8e Puppet 2 \u5230 3 \u7684\u5347\u7ea7", "id": "t/117862", "date_published": "2014-06-16T13:40:33+00:00", "content_html": "\u76ee\u524d Ubuntu 12.04 LTS \u91cc\u7684 Puppet \u662f 2.7 \u7248\u672c\u3002

\u662f\u5426\u6709\u4efb\u4f55\u5fc5\u8981\u6298\u817e\u5230 3 \u5462\uff1f

3 \u6709\u4ec0\u4e48\u4f60\u89c9\u5f97\u975e\u5347\u7ea7\u4e0d\u53ef\u7684\u597d\u529f\u80fd\u4e48\uff1f" }, { "author": { "url": "member/aveline", "name": "aveline", "avatar": "https://cdn.v2ex.com/avatar/5caf/41d6/1304_large.png?m=1432238732" }, "url": "t/113171", "title": "Puppet APT \u6e90\u975e\u5b98\u65b9\u56fd\u5185\u955c\u50cf", "id": "t/113171", "date_published": "2014-05-19T01:04:48+00:00", "content_html": "\u6709\u611f\u4e8e\u6bcf\u6b21\u66f4\u65b0 Puppet \u90fd\u592a\u7279\u4e48\u6162\u4e86\u6240\u4ee5\u81ea\u5df1\u642d\u4e86\u4e00\u4e2a\u3002
\u955c\u50cf\u90e8\u7f72\u5728\u963f\u91cc\u4e91 OSS \u4e0a\uff0c\u4e0e\u5b98\u65b9\u6e90\u6bcf\u9694\u4e00\u5c0f\u65f6\u540c\u6b65\u4e00\u6b21\u3002

\u5730\u5740\u662f http://apt.blackmesa.cn/puppet/

\u4f7f\u7528\u65b9\u6cd5\u5f88\u7b80\u5355\u5566~

" }, { "author": { "url": "member/aveline", "name": "aveline", "avatar": "https://cdn.v2ex.com/avatar/5caf/41d6/1304_large.png?m=1432238732" }, "url": "t/111965", "date_modified": "2014-05-10T16:25:43+00:00", "content_html": "\u4e4b\u524d\u4e00\u76f4\u7528 Foreman \u6765\u67e5\u770b Puppet \u7684Fact \u548c Report\uff0c\u4f46\u662f\u8fd9\u8d27\u592a\u91cd\u4e86\u800c\u4e14\u643a\u5e26\u4e86\u597d\u591a\u6211\u4e0d\u9700\u8981\u7684\u4e1c\u897f\u3002

\u4e8e\u662f\u611f\u8c22 @ericFork \u541b\u7ed9\u6211\u63a8\u8350\u4e86\u65b0\u73a9\u610f\u513f Puppetboard\uff0c\u548c PuppetDB \u914d\u5408\u592a\u597d\u7528\u4e86\u7b80\u76f4\u6d41\u6cea\u554a ...

\u800c\u4e14\u662f Flask \u5199\u7684\uff0c\u6bd4\u5367\u8f68\u7ea2\u5b9d\u77f3\u8f7b\u591a\u4e86XD

https://github.com/nedap/puppetboard



\u81f3\u4e8e\u8d44\u6e90\u5360\u7528\uff1a

\u6211\u662f\u548c\u6211\u7684 Puppet Master \u8fd8\u6709 PuppetDB \u88c5\u5728\u4e00\u53f0\u673a\u5668\u4e0a\u7684\uff0c\u8fde\u7740 30 \u4e2a\u8282\u70b9\uff0c\u4e00\u5171\u5360\u4e86 531M \u5185\u5b58\u3002", "date_published": "2014-05-10T16:24:50+00:00", "title": "Puppetboard", "id": "t/111965" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/104842", "title": "puppet agent --test \u8fd0\u884c\u540e\u7684 return code", "id": "t/104842", "date_published": "2014-03-18T06:12:03+00:00", "content_html": "0 = \u6210\u529f\uff0c\u6ca1\u6709\u66f4\u6539
1 = \u5931\u8d25
2 = \u6210\u529f\uff0c\u6709\u66f4\u6539
4 = \u5931\u8d25
6 = \u5931\u8d25\uff0c\u53ef\u80fd\u6709\u66f4\u6539

\u6240\u4ee5\uff0c\u9664\u4e86 0 \u548c 2 \u4e4b\u5916\uff0c\u5176\u4ed6\u60c5\u51b5\u90fd\u662f\u9700\u8981\u5904\u7406\u7684\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/98363", "title": "Ubuntu \u81ea\u5e26\u7248\u672c\u7684 facter \u65e0\u6cd5\u8f93\u51fa JSON\uff1f", "id": "t/98363", "date_published": "2014-01-25T21:18:42+00:00", "content_html": "facter --json
You do not have JSON support in your version of Ruby. JSON output disabled" }, { "author": { "url": "member/dalang", "name": "dalang", "avatar": "https://cdn.v2ex.com/avatar/0ae1/2dc3/13451_large.png?m=1368280554" }, "url": "t/93760", "title": "Puppet\u6709\u6ca1\u6709\u529e\u6cd5\u5728Windows\u91cd\u542f\u540e\uff0c\u7ee7\u7eed\u6267\u884c\u672a\u6267\u884c\u5b8c\u7684\u64cd\u4f5c\uff1f", "id": "t/93760", "date_published": "2013-12-19T03:03:38+00:00", "content_html": "\u6211\u60f3\u5728Windows Provision\u4e2d\u4f7f\u7528Puppet\u6765\u7ba1\u7406Postinstall\u3002
\u4f7f\u7528Puppet Master/Slave\u6a21\u5f0f\u3002
Postinstall\u4e3b\u8981\u6d89\u53ca\u6740\u6bd2\u8f6f\u4ef6\u7684\u5b89\u88c5\uff0c\u75c5\u6bd2\u5e93\u5347\u7ea7\uff0cwindows\u8865\u4e01\u5b89\u88c5\u7b49\u64cd\u4f5c\u3002\u4e00\u4e9b\u4e1c\u897f\u7684\u5b89\u88c5\u9700\u8981\u91cd\u542f\u540e\u751f\u6548\uff0c\u6240\u4ee5\u5728\u6574\u4e2apostinstall\u7684\u8fc7\u7a0b\u4e2d\u9700\u8981\u591a\u6b21\u91cd\u542f\u3002\u518d\u6bd4\u5982windows\u8865\u4e01\u6709\u4e9b\u5b58\u5728\u4f9d\u8d56\u76f8\u5173\uff0c\u76ee\u524d\u4e3a\u4fdd\u8bc1\u8865\u4e01\u90fd\u80fd\u591f\u88ab\u6253\u4e0a\uff0c\u6253\u8865\u4e01\u64cd\u4f5c\u91cd\u590d3\u6b21\uff0c\u6bcf\u6b21\u6253\u5b8c\u8865\u4e01\u540e\u5c31\u8fdb\u884c\u4e00\u6b21\u91cd\u542f\u3002

\u8fd9\u6837\u5728Puppet Agent\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u5c31\u4e0d\u662f\u6240\u6709\u7684\u64cd\u4f5c\u90fd\u662f\u5e42\u7b49\u7684\uff0c\u90a3\u4e48\u6709\u6ca1\u6709\u529e\u6cd5\u80fd\u4fdd\u8bc1\u91cd\u542f\u540e\uff0cPuppet\u662f\u4ece\u4e0a\u6b21\u672a\u6267\u884c\u7684\u64cd\u4f5c\u5f00\u59cb\u6267\u884c\uff1f

\u6216\u8005\u9488\u5bf9\u8fd9\u7c7b\u60c5\u51b5\uff0c\u4e00\u822c\u662f\u600e\u4e48\u5904\u7406\u7684\uff1f" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/85596", "title": "\u5173\u4e8e\u4fee\u590d puppet agent \u56e0\u4e3a\u7f51\u7edc\u4e0d\u597d\u800c\u65f6\u4e0d\u65f6 administratively disabled \u7684\u95ee\u9898", "id": "t/85596", "date_published": "2013-10-14T14:11:30+00:00", "content_html": "\u4ee5\u4e0b\u4e3a\u5927\u6982\u601d\u8def\uff0c\u53ef\u4ee5\u7528\u5404\u79cd\u8bed\u8a00\u5b9e\u73b0\u3002

\u5728 crontab \u4e2d\u6bcf 4 \u5c0f\u65f6\u68c0\u67e5\u4e00\u6b21 /var/lib/puppet/state/puppetdlock \u8fd9\u4e2a\u6587\u4ef6\u662f\u5426\u5b58\u5728 [1]\uff0c\u5982\u679c\u5b58\u5728\uff0c\u83b7\u5f97\u5176 mtime\uff0c\u5982\u679c mtime \u548c\u5f53\u524d\u65f6\u95f4\u5df2\u7ecf\u5dee\u4e86\u4e00\u4e2a\u5c0f\u65f6\u4ee5\u4e0a\uff08\u6ca1\u6709\u7406\u7531\u5355\u6b21\u8fd0\u884c\u4f1a\u8d85\u8fc7 1 \u4e2a\u5c0f\u65f6\uff09\uff0c\u90a3\u5c31\uff1a

service puppet stop
puppet agent --enable
puppet agent --test

\u5f53\u7136\uff0c\u9700\u8981\u52a0\u5165\u4fdd\u8bc1 Service['puppet'] \u4e00\u76f4\u8fd0\u884c\uff0c\u8fd9\u6837\u5f53 --test \u7684\u65f6\u5019\uff0c\u9664\u4e86\u4f1a\u5b8c\u6210\u540c\u6b65\u4e4b\u5916\uff0c\u4e5f\u5c31\u53ef\u4ee5\u91cd\u65b0\u542f\u52a8 puppet agent daemon\u3002

[1] http://projects.puppetlabs.com/issues/3757" }, { "author": { "url": "member/ptcracker", "name": "ptcracker", "avatar": "https://cdn.v2ex.com/gravatar/2409929c092e6689be69ed85c2608595?s=73&d=retro" }, "url": "t/80537", "title": "Puppet \u51fa\u73b0\u4e24\u4e2a\u6f0f\u6d1e\uff1a\u4efb\u610f\u4ee3\u7801\u6267\u884c\u3001\u6a21\u5757\u6743\u9650\u7ed5\u8fc7\uff0c\u5927\u5bb6\u5c3d\u5feb\u5347\u7ea7\uff01", "id": "t/80537", "date_published": "2013-08-28T10:45:13+00:00", "content_html": "_______________________________________________________________________

Package : puppet
Date : August 27, 2013
_______________________________________________________________________

Problem Description:

Updated puppet and puppet3 package fix security vulnerabilities:

It was discovered that Puppet incorrectly handled the resource_type
service. A local attacker on the master could use this issue to
execute arbitrary Ruby files (CVE-2013-4761).

It was discovered that Puppet incorrectly handled permissions on the
modules it installed. Modules could be installed with the permissions
that existed when they were built, possibly exposing them to a local
attacker (CVE-2013-4956).
_______________________________________________________________________

References:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4761
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4956
http://advisories.mageia.org/MGASA-2013-0259.html
_______________________________________________________________________" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/80521", "title": "\u7528 Ubuntu \u5185\u7f6e\u7684 Puppet \u7684\u8bdd\uff0c\u8fd8\u80fd\u5426\u63a5\u6536\u5230\u6765\u81ea\u5b98\u65b9\u7684\u5b89\u5168\u66f4\u65b0\u5462\uff1f", "id": "t/80521", "date_published": "2013-08-28T08:37:50+00:00", "content_html": "\u53d1\u73b0 precise \u91cc\u7684 Puppet \u7684\u7248\u672c\u5c31\u4e00\u76f4\u505c\u7559\u5728 2.7.11\uff0c\u4f46\u662f\u6700\u8fd1\u7684\u5b89\u5168\u6f0f\u6d1e\u4f3c\u4e4e\u662f\u5728 2.7.23 \u91cc\u4fee\u6b63\u4e86\u3002" }, { "author": { "url": "member/xatest", "name": "xatest", "avatar": "https://cdn.v2ex.com/avatar/27ef/3454/7998_large.png?m=1376395785" }, "url": "t/80070", "title": "puppet\u5360\u7528\u5185\u5b58\u4e0d\u5c11\uff0c\u8fd9\u4e2a\u95ee\u9898\u5927\u5bb6\u662f\u600e\u4e48\u89e3\u51b3\u7684\uff1f", "id": "t/80070", "date_published": "2013-08-24T03:24:07+00:00", "content_html": "\u6211\u7528puppet\u7ba1\u7406\u7684\u5927\u591a\u662f\u5185\u5b581GB\u5de6\u53f3\u7684VPS\uff0cpuppet-agent\u548cmco\u8fd9\u4e24\u4e2aservice\u4fdd\u6301\u5e38\u9a7b\u8fd0\u884c\u7684\u8bdd\u4f1a\u5360\u7528\u4e0d\u5c11\u5185\u5b58\uff0c\u5404\u4f4d\u662f\u600e\u4e48\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\uff1f\u603b\u611f\u89c9\u662f\u81ea\u5df1\u7528\u7684\u65b9\u5f0f\u4e0d\u5bf9\u301c" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/79824", "title": "puppet-lint", "id": "t/79824", "date_published": "2013-08-21T21:41:01+00:00", "content_html": "Puppet \u8bed\u6cd5\u68c0\u67e5\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7 TextMate \u7684 Puppet.tmBundle \u5728\u6bcf\u6b21\u4fdd\u5b58\u65f6\u81ea\u52a8\u8c03\u7528\uff1a

http://puppet-lint.com/

\u4e0d\u8fc7\u76ee\u524d\u6709\u4e9b\u5c0f\u95ee\u9898\uff0c\u5bf9\u4e8e\u67d0\u4e9b\u672b\u5c3e\u7f3a\u5c11 , \u7684\u60c5\u51b5\uff0c\u8fd8\u662f\u6ca1\u6709\u6293\u5230\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/79822", "title": "package \u7c7b\u578b\u7684 ensure \u7684 installed \u548c present \u6709\u4ec0\u4e48\u533a\u522b\u5462\uff1f", "id": "t/79822", "date_published": "2013-08-21T20:03:05+00:00", "content_html": "" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/79821", "title": "puppet.tmbundle for TextMate", "id": "t/79821", "date_published": "2013-08-21T19:50:02+00:00", "content_html": "https://github.com/masterzen/puppet-textmate-bundle" }, { "author": { "url": "member/aveline", "name": "aveline", "avatar": "https://cdn.v2ex.com/avatar/5caf/41d6/1304_large.png?m=1432238732" }, "url": "t/79580", "date_modified": "2013-08-20T12:29:51+00:00", "content_html": "", "date_published": "2013-08-19T21:27:14+00:00", "title": "\u5927\u5bb6 Puppet \u662f\u7528 Crontab \u9084\u662f Daemon \u904b\u884c\u7684\u5462\uff0c\u6642\u9593\u9593\u9694\u591a\u5c11\uff1f", "id": "t/79580" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/75664", "title": "Install Puppet Dashboard", "id": "t/75664", "date_published": "2013-07-13T11:03:12+00:00", "content_html": "http://docs.puppetlabs.com/dashboard/manual/1.2/bootstrapping.html" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/75197", "title": "Running Puppet Master with Passenger", "id": "t/75197", "date_published": "2013-07-08T22:32:54+00:00", "content_html": "http://docs.puppetlabs.com/guides/passenger.html

\u81ea\u5e26\u7684 WEBrick \u5728\u8d85\u8fc7 30 \u4e2a agent \u8fde\u63a5\u7684\u60c5\u51b5\u4e0b\u5c31\u4f1a\u6302\uff0c\u9700\u8981\u5347\u7ea7\u5230\u66f4\u9760\u8c31\u7684\u67b6\u6784\u3002" }, { "author": { "url": "member/xatest", "name": "xatest", "avatar": "https://cdn.v2ex.com/avatar/27ef/3454/7998_large.png?m=1376395785" }, "url": "t/74440", "title": "puppet\u6709\u6ca1\u6709\u529e\u6cd5\u63a5\u6536\u901a\u77e5\u6765\u89e6\u53d1\u90e8\u7f72\uff1f", "id": "t/74440", "date_published": "2013-07-02T02:30:42+00:00", "content_html": "\u6bd4\u5982\u63a5\u6536HTTP POST\u8bf7\u6c42\uff0c\u89e6\u53d1puppet\u90e8\u7f72\u3002\u6ca1\u6709\u67e5\u5230\u76f8\u5173\u7684\u8d44\u6599\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/74258", "title": "Puppet CookBook", "id": "t/74258", "date_published": "2013-06-30T13:38:38+00:00", "content_html": "http://www.puppetcookbook.com/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/73641", "title": "Puppet Enterprise 3.0", "id": "t/73641", "date_published": "2013-06-25T23:45:57+00:00", "content_html": "http://info.puppetlabs.com/download-pe.html" }, { "author": { "url": "member/rrfeng", "name": "rrfeng", "avatar": "https://cdn.v2ex.com/avatar/0bb1/03d9/21425_large.png?m=1366707259" }, "url": "t/70992", "date_modified": "2013-09-06T08:17:53+00:00", "content_html": "\u9886\u5bfc\u8bf4\uff0c\u4e0a puppet \u5427\uff01
\u4e8e\u662f\u6298\u817e\u4e00\u756a\uff0c\u57fa\u672c\u5b9e\u73b0\u4e86\uff0c\u5c40\u90e8\u4f7f\u7528\u4e2d\u3002

\u4f46\u662f\u6709\u70b9\u513f\u611f\u89c9 puppet \u7528\u8d77\u6765\u5f88\u4e0d\u723d\uff0c\u603b\u4e4b\u5c31\u662f\u611f\u89c9\u5f88\u522b\u626d

\u6709\u6ca1\u6709\u7b80\u5355\u597d\u7528\u7684\u66ff\u4ee3\u54c1\uff1f", "date_published": "2013-06-02T14:20:49+00:00", "title": "\u5173\u4e8e Puppet \u53ca\u5176\u66ff\u4ee3\u54c1", "id": "t/70992" }, { "author": { "url": "member/JasonH", "name": "JasonH", "avatar": "https://cdn.v2ex.com/avatar/a0c8/8573/36176_large.png?m=1638520390" }, "url": "t/70737", "title": "\u5173\u4e8e Puppet Enterprise", "id": "t/70737", "date_published": "2013-05-31T02:36:00+00:00", "content_html": "\u8c8c\u4f3c Web GUI \u5c31\u53ea\u6709\u5728 Enterprise \u7248\u91cc\u624d\u6709\uff1f

\u800c\u4e14 Puppet Enterprise \u5728 /etc \u4e0b\u7684\u76ee\u5f55\u7ed3\u6784\u4e5f\u548c\u666e\u901a\u7248\u672c\u4e0d\u4e00\u6837\uff1f

\u5927\u5bb6\u5728\u5b9e\u9645\u73af\u5883\u4e2d\u7528\u7684\u662f PE \u8fd8\u662f\u666e\u901a\u7248\u672c\u5462\uff1f" }, { "author": { "url": "member/JasonH", "name": "JasonH", "avatar": "https://cdn.v2ex.com/avatar/a0c8/8573/36176_large.png?m=1638520390" }, "url": "t/63718", "title": "\u5982\u679c Puppet \u5ba2\u6237\u7aef\u7528 3.1.1 \u7248\u672c\uff0c\u4f46\u662f\u670d\u52a1\u5668\u7aef\u662f 2.7\uff0c\u4f1a\u6709\u4ec0\u4e48\u95ee\u9898\u4e48\uff1f", "id": "t/63718", "date_published": "2013-03-22T05:06:46+00:00", "content_html": "" }, { "author": { "url": "member/JasonH", "name": "JasonH", "avatar": "https://cdn.v2ex.com/avatar/a0c8/8573/36176_large.png?m=1638520390" }, "url": "t/63561", "title": "\u5728 Mac OS X \u4e0a\u5b89\u88c5 Puppet \u6700\u597d\u7684\u65b9\u6cd5\u662f\uff1f", "id": "t/63561", "date_published": "2013-03-20T18:08:49+00:00", "content_html": "" }, { "author": { "url": "member/JasonH", "name": "JasonH", "avatar": "https://cdn.v2ex.com/avatar/a0c8/8573/36176_large.png?m=1638520390" }, "url": "t/63551", "title": "\u8bf7\u5927\u5bb6\u63a8\u8350\u4e00\u4e9b\u5173\u4e8e Puppet \u9879\u76ee\u67b6\u6784\u65b9\u9762\u7684\u597d\u4f8b\u5b50\u5427", "id": "t/63551", "date_published": "2013-03-20T14:49:40+00:00", "content_html": "\u6700\u8fd1\u5728\u5b66\u4e60 Puppet\uff0c\u611f\u89c9\u6982\u5ff5\u548c\u8bed\u6cd5\u90fd\u8fd8\u662f\u6bd4\u8f83\u5bb9\u6613\u7406\u89e3\u7684\uff0c\u4f46\u662f\u6700\u5927\u7684\u96be\u70b9\u662f\u5982\u4f55\u8bbe\u8ba1\u4e00\u4e2a\u9760\u8c31\u7684\u3001\u957f\u8fdc\u7684\u67b6\u6784\u3002\u8fd9\u65b9\u9762\u5927\u5bb6\u80fd\u63a8\u8350\u4e00\u4e9b\u597d\u7684 example project \u4e48\uff1f

\u8c22\u8c22\u3002" }, { "author": { "url": "member/JasonH", "name": "JasonH", "avatar": "https://cdn.v2ex.com/avatar/a0c8/8573/36176_large.png?m=1638520390" }, "url": "t/63467", "date_modified": "2013-03-19T15:39:45+00:00", "content_html": "\u521a\u88c5\u597d Puppet Enterprise\uff0c\u7136\u540e\u5728 /etc/puppetlabs/puppet/manifests \u4e0b\u5efa\u4e86 nodes \u76ee\u5f55\uff0c\u91cc\u9762\u662f\u6bcf\u4e2a node \u7684 definition\uff0c\u7136\u540e\u5728 site.pp \u91cc include 'nodes/*.pp'\uff0c\u4f46\u662f\u914d\u7f6e\u5931\u8d25\uff0c\u5728 node \u4e0a\u7528 puppet agent -t \u770b\u5230\u7684\u9519\u8bef\u8f93\u51fa\u662f\uff1a

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class nodes/*.pp for node01 at /etc/puppetlabs/puppet/manifests/site.pp:93 on node node01
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

include \u8bed\u6cd5\u662f\u4e0d\u80fd\u8fd9\u6837\u7528\u4e48\uff1f", "date_published": "2013-03-19T15:39:09+00:00", "title": "\u5173\u4e8e Puppet \u7684 include \u8bed\u6cd5\u7684\u95ee\u9898", "id": "t/63467" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/63329", "title": "\u76ee\u524d\u6709\u53ef\u4ee5\u5bf9 Puppet \u7684 .pp \u683c\u5f0f\u505a\u8bed\u6cd5\u68c0\u67e5\u7684\u7f16\u8f91\u5668\u4e48\uff1f", "id": "t/63329", "date_published": "2013-03-18T11:58:51+00:00", "content_html": "" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/62641", "title": "Pro Puppet \u662f\u4e00\u672c\u597d\u4e66", "id": "t/62641", "date_published": "2013-03-11T16:26:03+00:00", "content_html": "http://www.amazon.com/Pro-Puppet-James-Turnbull/dp/1430230576

\u771f\u5e0c\u671b\u80fd\u591f\u6709\u4e00\u6bb5\u5145\u8db3\u7684\u65f6\u95f4\u628a\u8fd9\u672c\u4e66\u770b\u5b8c\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/61247", "title": "Puppet Enterprise 2.7.1 for Ubuntu 12.04 64-bit \u56fd\u5185\u955c\u50cf", "id": "t/61247", "date_published": "2013-02-24T16:31:38+00:00", "content_html": "http://objects.cn.v2ex.com/puppet/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/59809", "title": "Puppet REST API", "id": "t/59809", "date_published": "2013-02-04T17:29:51+00:00", "content_html": "http://docs.puppetlabs.com/guides/rest_api.html" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/59707", "title": "Puppet \u5728\u88c5\u597d\u4e4b\u540e\u53ef\u4ee5\u540c\u65f6\u7ba1\u7406\u5f88\u591a\u673a\u5668\uff0c\u4f46\u662f\u5728\u6700\u521d\u5982\u4f55\u540c\u65f6\u628a Puppet \u88c5\u5230\u5f88\u591a\u673a\u5668\u4e0a\u5462\uff1f", "id": "t/59707", "date_published": "2013-02-04T00:35:55+00:00", "content_html": "\u5927\u5bb6\u6765\u804a\u804a\u5404\u81ea\u7684\u601d\u8def\u5427\uff1f

\u5982\u679c\u662f\u865a\u62df\u73af\u5883\u7684\u8bdd\uff0c\u5012\u662f\u53ef\u4ee5\u76f4\u63a5\u628a puppet\uff0c\u751a\u81f3 master \u5730\u5740\u5c31\u505a\u5230 template \u4e2d\u3002\u4f46\u662f\uff0c\u5982\u679c\u662f\u975e\u865a\u62df\u73af\u5883\u5462\uff1f\u5bf9 ISO \u8fdb\u884c\u5b9a\u5236\u6539\u9020\uff1f" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/59337", "title": "Learning Puppet", "id": "t/59337", "date_published": "2013-01-30T22:34:04+00:00", "content_html": "http://docs.puppetlabs.com/learning/" }, { "author": { "url": "member/harmy", "name": "harmy", "avatar": "https://cdn.v2ex.com/avatar/0768/281a/1021_large.png?m=1393241260" }, "url": "t/48480", "title": "Puppet\u7528Ruby\u5f00\u53d1\u7684\u539f\u56e0", "id": "t/48480", "date_published": "2012-09-22T08:22:02+00:00", "content_html": "http://www.aosabook.org/en/puppet.html

puppet\u7684\u4f5c\u8005Luke\u6700\u521d\u662f\u540dPerl\u7a0b\u5e8f\u5458\uff0c\u64c5\u957fshell\u548cc\u3002puppet\u7684\u539f\u578b\u7528perl\u5199\u5c31\uff0c\u4f46\u4e0d\u5e78\u4ee3\u7801\u88ab\u732b\u5403\u6389\uff0c\u53ea\u597d\u795e\u519c\u5c1d\u767e\u8349\uff1a\u8bd5\u8fc7python\uff0c\u53d1\u73b0\u548c\u4ed6\u7684\u4e16\u754c\u89c2\u4e25\u91cd\u51b2\u7a81\uff0c\u540e\u6765\u57fa\u4e8e\u670b\u53cb\u8fd1\u4e4e\u8c23\u8a00\u7684\u63a8\u8350\uff0c\u5c1d\u8bd5\u4f7f\u7528Ruby\uff0c\u7adf\u57284\u5c0f\u65f6\u5185\u5b8c\u6210\u53ef\u7528\u7684\u539f\u578b\u3002\u90a3\u662f2005\u5e74\u7684\u51ac\u5929\uff0cRuby\u6bd4\u4ee5\u5f80\u65f6\u5019\u6765\u5f97\u665a\u4e00\u4e9b\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/40540", "title": "Hacking Puppet", "id": "t/40540", "date_published": "2012-06-25T21:18:35+00:00", "content_html": "http://github.com/lak/velocity_2012-Hacking_Puppet" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86