我在EC2中使用ubuntu 12.04 AMI创建puppet群集,我在配置时遇到问题。 问题是主设备无法识别从设备。 我需要更多的软件包而不是mysql
/etc/mysql/my.cnf
上述文件需要进行哪些更改?
答案 0 :(得分:3)
Puppet是一个配置管理工具,允许自动化定义和维护多个开发人员工作站的一致状态的过程。它是一个描述性,集中式和基于客户端服务器的系统。中央服务器已配置,客户端自身与其同步,以确保所有系统都以所述状态结束。例如,使用Puppet可以轻松完成在项目中的所有开发人员系统上确保相同开发环境的任务。 这是在具有Ubuntu OS的Amazon EC2实例上设置Puppet服务器和一个Puppet客户端的快速过程,并且还在服务器上安装Puppet Dashboard以查看客户端的状态。
<强>先决条件强>
<强>程序强>
Puppet服务器和客户端设置
配置hosts文件查看puppetserver和puppetclient上的/ etc / hostname文件。它们分别是Puppet服务器和客户端主机名 在两个系统上编辑/ etc / hosts文件。添加服务器和客户端IP以及相应的主机名。
设置Puppet Server 启用Puppet Labs包存储库
例如,要为Ubuntu 12.04,Precise Pangolin启用存储库:
wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get updateInstall Puppet
安装Puppet
安装puppetmaster
sudo apt-get update sudo apt-get install puppetmaster
设置Puppet客户端
在puppet客户端上安装Puppet
sudo apt-get update sudo apt-get install puppet
在客户端上指定Puppet服务器域名。为此,请修改
/etc/puppet/puppet.conf
文件并添加该行
服务器=。
客户端现在可以连接到Puppet master。
启动Puppet代理服务,以便在服务器和客户端之间建立第一次通信。
sudo puppet agent --verbose --no-daemonize --onetime
这将启动与正在侦听Puppet服务器上的端口8140的Puppet主进程的连接。输出将是详细的,并且代理将不会在后台继续作为守护程序运行。此外,它只运行一次,也就是说,在连接关闭后,代理进程将退出。输出如下:
客户端通过发送SSL证书请求使服务器知道。服务器需要验证客户端。 查看服务器上尚未签名的证书列表
sudo puppet cert --list
列出以下内容
签署客户端节点的SSL证书
sudo puppet cert --sign <puppet client name>
客户端现在可以建立与服务器的完全连接,并轮询Puppet主服务器以进行任何配置更新。
定义配置
我们已经在Puppet服务器和客户端上设置了puppet,并且还在两台机器之间建立了通信。下一步是使用puppet清单定义目标系统的配置。这些清单在site.pp文件中指定。
作为示例,我们定义了一个将在客户端上创建helloworld.txt文件的清单。
定义清单
将以下清单定义放在/etc/puppet/manifests/site.pp文件中,
node "<puppet client hostname>" { file { "/home/ubuntu/helloworld.txt": content => "This is test content", ensure => file, owner => "ubuntu", group => "ubuntu", mode => 0644 } }
此清单定义puppet客户端必须具有helloworld.txt文件 在/ home / ubuntu /包含内容的文件夹中,这是测试内容。
在客户端上进行更改
在puppet客户端上,运行以下命令。
sudo puppet agent -t
puppet客户端提取puppet服务器上site.pp文件中定义的清单。它了解到一个名为helloworld.txt的文件具有已定义的规范,预计将存在于/ home / ubuntu位置。由于客户端上不存在此类文件,因此代理会采取操作并创建文件。
查看&#39; helloworld.txt&#39;文件
要验证客户端是否存在于Puppet服务器定义的状态,请运行以下命令
sudo vi /home/ubuntu/helloworld.txt
文件内容与服务器上清单定义中的定义相同。
安装Puppet Dashboard
概述 Puppet Dashboard是一个与Puppet连接的GUI。它可用于查看和报告所有客户端节点的状态。 Puppet仪表板在puppet服务器上的端口3000上运行。
以下是设置
的步骤Dashboard是一个Ruby on Rails Web应用程序,因此需要安装某些软件 RubyGems的 耙子版本0.8.3或更新版本 MySQL数据库服务器版本5.x. Ruby-MySQL绑定版本2.7.x或2.8.x
安装软件包
sudo apt-get install -y build-essential irb libmysql-ruby libmysqlclient-dev libopenssl-ruby libreadline-ruby mysql-server rake rdoc ri ruby ruby-dev
安装RubyGems包系统
( URL="http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz" PACKAGE=$(echo $URL | sed "s/\.[^\.]*$//; s/^.*\///") cd $(mktemp -d /tmp/install_rubygems.XXXXXXXXXX) && \ wget -c -t10 -T20 -q $URL && \ tar xfz $PACKAGE.tgz && \ cd $PACKAGE && \ sudo ruby setup.rb )
创建gem作为gem1.8的替代名称
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.8 1
安装Puppet Dashboard
从puppetlabs包存储库安装puppet-dashboard
sudo apt-get update sudo apt-get install puppet-dashboard
配置信息中心
修改database.yml文件。它可以在/usr/share/puppet-dashboard/config/database.yml找到。
在生产环境的键值对下,数据库值&cbspboard_production&#39;指定仪表板数据库名称和用户名值&#39;仪表板&#39;指定此数据库的用户。在下一步中,我们将创建数据库和用户。密码值是MySQL的密码。
创建和配置MySQL数据库
为puppet-dashboard创建用户和数据库。导航到MySQL命令行
CREATE DATABASE dashboard_production CHARACTER SET utf8; CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'my_password'; GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
配置MySQL的最大数据包大小以允许数据库中更大的行
set global max_allowed_packet = 33554432;
同时修改mysql配置文件/etc/mysql/my.cnf
max_allowed_packet = 32M
要创建仪表板表,请在puppet-dashboard文件夹中运行以下命令
cd /usr/share/puppet-dashboard rake RAILS_ENV=production db:migrate
测试仪表板是否正常工作
使用Ruby的内置WEBrick服务器启动仪表板
cd /usr/share/puppet-dashboard
sudo ./script/server -e production
仪表板实例使用“生产”环境在端口3000上启动。仪表板的UI可在以下位置查看:3000
配置木偶
需要为仪表板配置puppet服务器和客户端以接收报告。 配置代理节点,通过打开报告来向主服务器提交报告。
[agent]
report = true
配置服务器。将http报告处理程序添加到puppet服务器的报告设置,并将reporturl设置为Dashboard实例的报告/上传URL
[master]
reports = store, http
reporturl = http://<server hostname>:3000/reports/upload
启用仪表板的外部节点分类器(ENC),
[master]
node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=http://<server hostname>:3000 /usr/share/puppet-dashboard/bin/external_node
测试Puppet与Dashboard的连接
重启木偶大师 运行其中一个puppet代理来测试配置
sudo puppet agent -t
输出将是:
这意味着报告已经到了。为了处理它,我们将激活delayed_job工作者。
启动delayed_job工作人员
运行以下命令
cd /usr/share/puppet-dashboard
sudo env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start
这将启动delayed_job工作程序,并完成挂起的任务。
因此,puppet现在安装在两个EC2实例上,其中一个是服务器而另一个是客户端。此外,安装了puppet-dashboard以查看客户端节点的状态。