一台安装Centos6或这Centos7的操作系统
下载 ChefDKChefDK是Chef Development Kit的缩写,它几乎用于所有的平台,包括基于Debian发行版、Ubuntu、RedHat、CentOS、Mac OS X和Windows。当前ChefDK的稳定版本是0.11.2,对于基于RHEL的系统,它可用于版本 6 和 7(如: CentOS 6 和 CentOS 7),RPM版本只有64位版本。使用以下命令下载ChefDK在CentOS 7上cd ~ wget https://packages.chef.io/stable/el/7/chefdk-0.11.2-1.el7.x86_64.rpm在CentOS 6上cd ~ wget https://packages.chef.io/stable/el/6/chefdk-0.11.2-1.el6.x86_64.rpm
安装 ChefDK使用RPM安装刚刚下载的ChefDK
ChefDK默认安装到/opt/chefdk目录下,如下所示
验证ChefDK的安装执行chef verify,验证所有来自ChefDK的不同组件,确保他们都工作正常,没有任何问题
下面是chef verify失败的案例。注意:Ruby在Chef中是必须的,它被嵌入在了ChefDK中。以下错误信息显示:“Could not find ‘chef-config’ (= 12.8.0) – did find: [chef-config-12.7.2] (Gem::LoadError)”,在安装的ChefDK中chef-config的版本是12.7.2的旧版本,在手动安装chef-confg 12.8.0版本后再执行chef verify,显示验证成功。
验证ChefDK版本执行 chef -version命令,显示ChefDK的版本号以及所有附带组件
设置Chef 环境变量设置Chef相关的环境变量,如:GEM_ROOT GEM_HOME GEM_PATH。export GEM_ROOT='/opt/chefdk/embedded/lib/ruby/gems/2.1.0' export GEM_HOME='/root/.chefdk/gem/ruby/2.1.0' export GEM_PATH='/root/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0'此外,如果你的系统上已经安装了ruby,你需要更新与ruby相关的PATH变量,如下所示export PATH='/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'
显示所有Chef设置的环境变量。chef shell-init bash想要快速设置这些环境变量,可以将其添加到bash_profile文件中,如下所示。echo 'eval '$(chef shell-init bash)'' >> ~/.bash_profile
访问Chef的Firewalld规则为了访问Chef服务器上的Chef Manage GUI,添加以下firewalld规则,开放Chef服务器上的相应端口。
从Chef Manage GUI下载Starter Kit登录到Chef Manage GUI,单击“Administration”选项,从列表中选择“organization”。此例中,“organization”为“example”,选中organization之后,点击左侧菜单中的“Starter Kit”。按下“Download(下载)”按钮之后,会跳出一个警告信息,按下“Proceed”,它会将chef-starter.zip文件下载到本地机器。
解压缩 Starter Kit将chef-starter.zip文件传输到Chef工作站并解压到root的home目录下如果你手动创建了chef-repo文件夹,那你就需要手动创建上述的子目录,复制knife.rb文件、organization-validator.pem文件(如:example-validator.pem)、username.pem文件(如:ramesh.pem)到下图显示的目录中。
Chef服务器的SSL证书在这个阶段如果执行knife client list会得到以下错误信息
证书验证失败,因为我们没有从Chef服务器下载SSL证书,此时可以执行以下“knife ssl fetch”。
证书将会下载到以下truster_certs目录中
Chef工作站的最终确认如果Chef工作站工作正常,当你执行“knife client list”时,它会显示所有连接工作站的客户端。由于我们刚刚安装它,因此只能看到刚刚我们创建的组织(organization)
如果你现有的Chef工作站机器上已经有5个服务器连接到它了,你会看到以下信息