🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 使用 Puppet Dashboard **Puppet Dashboard** 是一个管理 Puppet 安装的有用的工具,尤其对于大量的安装, 并且能够通过一个 Web 界面看到节点的信息和报告。 **Puppet Dashboard** 可以为你显示最近运行 Puppet 的节点,它们运行了多长时间, 是否有任何节点的错误报告,以及是否有一段时间内没有运行 Puppet 的节点等。 #### 准备工作 1. 从 Puppet Labs 站点 [http://www.puppetlabs.com/misc/download-options/](http://www.puppetlabs.com/misc/download-options/) 下载 Puppet Dashboard 软件包并解压缩。 软件包中有一个安装说明文件 README.markdown,但你可能需要先安装以下依赖的包(部分或全部): ``` # apt-get install -y build-essential irb libmysql-ruby libmysqlclient-dev libopenssl-ruby libreadline-ruby mysql-server rake rdoc ri ruby ruby-dev ``` 2. 为 Puppet Dashboard 应用程序创建一个 MySQL 数据库和用户(使用自己的口令): ``` # mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 39 Server version: 5.1.41-3ubuntu12.9 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database dashboard; Query OK, 1 row affected (0.00 sec) mysql> grant all on dashboard.* to dashboard@localhost identified by 'topsecret'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) ``` 3. 复制 Puppet Dashboard 提供的样例文件 database.yml,并做适当的修改: ``` # cd puppetlabs-puppet-dashboard-071acf4 # cp config/database.yml.example config/database.yml # vi config/database.yml ``` ``` production: database: dashboard username: dashboard password: topsecret encoding: utf8 adapter: mysql ``` 4. 使用应用程序提供的 Rake 任务创建如下的初始化数据库: ``` # rake RAILS_ENV=production db:migrate ``` #### 操作步骤 1. 启动内置的 Web 服务器: ``` # script/server -e production => Booting WEBrick => Rails 2.3.5 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2011-02-21 09:54:32] INFO WEBrick 1.3.1 [2011-02-21 09:54:32] INFO ruby 1.8.7 (2010-01-10) [i486-linux] [2011-02-21 09:54:37] INFO WEBrick::HTTPServer#start: pid=16570 port=3000 Using a web browser, connect to localhost:3000 ``` 2. 如图所示,你应该看到 Puppet Dashboard 的界面: ![https://box.kancloud.cn/2016-05-12_5733eef43f512.png](https://box.kancloud.cn/2016-05-12_5733eef43f512.png) 3. 现在你需要配置 Puppetmaster 向 Puppet Dashboard 发送报告。 为了实现这个功能,你需要配置 puppet.conf 文件的 reports 参数,为其添加 http 报告: ``` reports = http,log ``` 4. 重新启动 Puppetmaster 使新配置的报告生效。 5. 在节点上运行 Puppet: ``` # puppet agent --test ``` 6. 在 Puppet Dashboard 界面中单击 **Nodes** 链接。 如图所示,你应该看到表明 Puppet 运行成功的绿色区域: ![https://box.kancloud.cn/2016-05-12_5733eef47bb06.png](https://box.kancloud.cn/2016-05-12_5733eef47bb06.png) #### 工作原理 当在一个节点上运行了 Puppet,它会使用其报告装置向 Puppet Dashboard 发送报告。 Puppet Dashboard 会存储这些数据并利用这些数据显示所有节点上的 Puppet 活动的图表和摘要。 #### 更多用法 你也可以使用 Puppet Dashboard 创建新的节点或类,并控制哪些节点需要包含哪些类。 实际上,它为你管理 Puppet 配置清单提供了一个 Web 接口, 所以你可以通过 Web 浏览器来编辑配置清单,而不是直接修改文本文件。 这是一个有吸引力的功能,尤其用于想让其他团队或部门的人能够管理他们自己的 Puppet 配置时。 为了实现 Puppet Dashboard 的这个功能,你需要配置 Puppet 使用 **external node classifier**; 这将在 [使用外部节点分类器](#ch09sec09) 一节中介绍。 #### 参见本书 * 第 2 章的 [生成报告](#ch02sec01) 一节 * 第 2 章的 [创建图形化报告](#ch02sec03) 一节 * 本章的 [使用外部节点分类器](#ch09sec09) 一节