我在EC2中使用ubuntu 12.04 AMI来创建puppet集群,并且在配置它时遇到问题。 问题是,主人无法识别奴隶。 我是否需要比MySQL如何在Amazon EC2实例上安装puppet集群?
/etc/mysql/my.cnf
我需要在上面的文件有什么变化等多个包?
我在EC2中使用ubuntu 12.04 AMI来创建puppet集群,并且在配置它时遇到问题。 问题是,主人无法识别奴隶。 我是否需要比MySQL如何在Amazon EC2实例上安装puppet集群?
/etc/mysql/my.cnf
我需要在上面的文件有什么变化等多个包?
Puppet是一个配置管理工具,允许自动执行定义和维护多个开发人员工作站的一致状态的过程。它是一个描述性的,集中的和基于客户端 - 服务器的系统。中央服务器已配置,客户端与其同步以确保所有系统都以所述状态结束。例如,使用Puppet可以轻松完成确保项目中所有开发人员系统上的相同开发环境的任务。 以下是在具有Ubuntu操作系统的Amazon EC2实例上设置Puppet服务器和一个Puppet客户端的快速步骤,以及在服务器上安装Puppet Dashboard以查看客户端的状态。
先决条件
程序
木偶服务器和客户端设置
配置主机文件查看关于puppetserver和puppetclient在/ etc /主机名的文件。这两个系统上分别是Puppet服务器和客户端主机名 编辑/ etc/hosts文件。添加服务器和客户端IP以及相应的主机名。
设置的木偶服务器 启用木偶服务器
例如,启用Ubuntu 12的存储库。04,精确的穿山甲:
wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get updateInstall Puppet
安装木偶
安装戏梦人生
sudo apt-get update sudo apt-get install puppetmaster
设置的木偶客户
木偶客户机上安装木偶
sudo apt-get update sudo apt-get install puppet
指定客户端上的Puppet服务器域名。为此,请修改
/etc/puppet/puppet.conf 文件并添加行 server =。 客户端现在可以连接到Puppet主站。
启动用于建立服务器和客户端之间的第一通信木偶代理服务。
sudo puppet agent --verbose --no-daemonize --onetime
这开始在端口8140监听木偶服务器上的木偶大师进程的连接。输出将是详细的,代理将不会作为守护进程在后台继续运行。此外,它将只运行一次,即在连接关闭后,代理程序进程将退出。输出看起来像:
客户端已通过发送一个SSL证书请求使自己已知的服务器。服务器需要证明客户端。 要查看服务器
sudo puppet cert --list
此列出了以下
登录客户端节点的SSL证书
sudo puppet cert --sign <puppet client name>
上还没有将要签署的证书列表
客户端现在可以建立与服务器的完整连接并轮询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 } }
此清单定义了傀儡客户端必须有一个helloworld.txt文件 在/ home/ubuntu /文件夹中包含内容,这是测试内容。
客户端
获取变化对木偶客户端,运行以下命令。
sudo puppet agent -t
puppet客户端拉取puppet服务器上site.pp文件中定义的清单。它了解到一个名为helloworld.txt的文件具有已定义的规范,预计将存在于/ home/ubuntu位置。因为客户端上不存在这样的文件,所以代理采取行动并创建文件。
查看“helloworld.txt”文件
为了验证客户端在由木偶服务器定义的状态存在,运行下面的命令
sudo vi /home/ubuntu/helloworld.txt
文件内容是相同在服务器清单定义中定义。
安装木偶控制板
概述 木偶仪表板是与木偶接口的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)
创建宝石作为GEM1的替代名称。8
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.8 1
安装木偶控制板
从puppetlabs包库
sudo apt-get update sudo apt-get install puppet-dashboard
安装木偶的仪表板配置控制板
修改database.yml文件。它可以在/usr/share/puppet-dashboard/config/database.yml找到。
下生产环境的键值对,数据库值“dashboard_production”指定仪表板数据库名和用户名值“仪表盘”指定该数据库的用户。在下一步中,我们将创建数据库和用户。密码值是MySQL的密码。
创建和配置MySQL数据库
创建木偶仪表盘的用户和数据库。导航到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
要创建仪表盘表,木偶,仪表盘的文件夹
cd /usr/share/puppet-dashboard rake RAILS_ENV=production db:migrate
测试该仪表盘正在运行以下命令
开始使用仪表盘Ruby内置的WEBrick服务器
cd /usr/share/puppet-dashboard
sudo ./script/server -e production
仪表板实例使用“生产”环境在端口3000上启动。仪表盘的用户界面可浏览:3000
配置木偶
两个傀儡服务器和客户端需要配置的仪表板来接收报告。 配置代理节点,通过打开报告提交报告给主数据库。
[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
测试木偶的连接到信息中心
重新启动木偶大师 运行其中一个木偶代理来测试配置
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以查看客户端节点的状态。