本节书摘来自异步社区《Puppet实战手册》一书中的第1章,第1.2节,作者:【英】John Arundel著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 安装Puppet
如果已安装好了Puppet,那么可以跳过此步骤。如果没有,或者想要升级或重装Puppet,则可以按以下开始一步一步完成相应的安装过程。
本书将使用亚马逊的EC2云实例来演示如何设置Puppet,不过读者可能更喜欢使用一台物理服务器、一个Linux工作站,或是一个Vagrant、VMWare、VirtualBox这样的虚拟机。本书会以ubuntu用户登录并使用sudo命令来执行需要root权限的命令(sudo是Ubuntu系统默认自带获取root权限的命令)。
在EC2的Ubuntu镜像中,ubuntu用户默认已经有以root身份执行任何命令的sudo权限。如果使用其他Linux发行版本或者没有使用EC2,则需要通过/etc/sudoers文件来配置增加这个权限。
准备工作
需要给安装Puppet的机器设置主机名。
1. 在服务器上设置适当的主机名①(忽略sudo的所有警告):
ubuntu@domU-12-31-39-09-51-23:~$ sudo hostname cookbook
ubuntu@domU-12-31-39-09-51-23:~$ sudo su -c 'echo cookbook
>/etc/hostname'
sudo: unable to resolve host cookbook
2. 退出系统并重新登录后,可以检查主机名已经正确设置:
ubuntu@cookbook:~$
3. 查找本机的本地IP地址:
ubuntu@cookbook:~$ ip addr show |grep eth0
inet 10.96.247.132/23 brd 10.96.247.255 scope global eth0
4. 复制服务器IP地址(这里是10.96.247.132)并添加到/etc/hosts文件(使用自己的主机名和域名),参考如下:
10.96.247.132 cookbook cookbook.example.com
操作步骤
Puppet Labs为包含Ubuntu在内的大多数Linux发行版提供了Puppet软件包。本书将以Ubuntu 12.04 Precise为例,讲解如何安装Puppet。
1. 从Puppet Labs网站下载仓库(repo)软件包:
ubuntu@cookbook:~$ wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
```
2. 安装仓库(repo)软件包:
ubuntu@cookbook:~$ sudo dpkg -i puppetlabs-release-precise.deb
Selecting previously unselected package puppetlabs-release.
(Reading database ... 33975 files and directories currently installed.)
Unpacking puppetlabs-release (from puppetlabs-release-precise.deb)
Setting up puppetlabs-release (1.0-5)
3. 更新APT配置:
``ubuntu@cookbook:~$ sudo apt-get update``
4. 安装Puppet:
``ubuntu@cookbook:~$ sudo apt-get -y install puppet``
5. 运行下面的命令,检查Puppet是否安装成功:
ubuntu@cookbook:~$ puppet --version
3.2.2
如果安装的Puppet版本与本书不完全相同,不用担心,可以从Puppet Labs获取由它提供的最新稳定版本。在很长的一段时间之内,Puppet的版本都会是3.x系列,读者不用担心本书的示例无法运行。
如果读者安装的是比较老的Puppet版本,就会发现很多东西无法工作或者不符合自己的预期。如果可以,本书建议升级到Puppet 3.x或更新版本。