📜  Chef-客户端设置

📅  最后修改于: 2020-11-04 04:48:21             🧑  作者: Mango


 

为了使Chef节点与Chef服务器通信,您需要在该节点上设置Chef客户端。

Chef客户

这是Chef节点的关键组件之一,Chef节点从Chef服务器检索食谱并在节点上执行。它也被称为厨师配置者。

在这里,我们将使用Vagrant来管理VM。还可以使用配置程序(例如Shell脚本,Chef和Puppet)配置Vagrant,以使VM进入所需状态。在我们的案例中,我们将使用Vagrant通过VirtualBox和Chef客户端作为预配器来管理VM。

步骤1-https://www.virtualbox.org/wiki/downlod下载并安装VirtualBox

步骤2-http://downloads.vagrantup.com下载并安装Vagrant

步骤3-安装Vagrant Omnibus插件以使Vagrant在VM上安装Chef客户端。

$ vagrant plugin install vagrant-omnibus 

创建和启动虚拟

步骤1-我们可以从Opscode流浪者仓库下载所需的流浪者盒子。从以下URL下载opscode-ubuntu-12.04框https://opscode-vmbento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box

步骤2-拥有Vagrant文件后,下载编辑Vagrant文件所需的路径。

vipin@laptop:~/chef-repo $ subl Vagrantfile 
Vagrant.configure("2") do |config| 
   config.vm.box = "opscode-ubuntu-12.04" 
   config.vm.box_url = https://opscode-vm-bento.s3.amazonaws.com/ 
   vagrant/opscode_ubuntu-12.04_provisionerless.box 
   config.omnibus.chef_version = :latest  
   config.vm.provision :chef_client do |chef| 
      chef.provisioning_path = "/etc/chef" 
      chef.chef_server_url = "https://api.opscode.com/ 
      organizations/" 
      chef.validation_key_path = "/.chef/-validator.pem"
      chef.validation_client_name = "-validator" 
      chef.node_name = "server" 
   end 
end 

在上述程序中,您需要使用正确或必需的组织名称更新名称。

步骤3-配置完成后的下一步,启动无业游民的盒子。为此,您需要移动到“ Vagrant”框所在的位置,然后运行以下命令。

$ vagrant up

步骤4-一旦机器启动,您可以使用以下命令登录到机器。

$ vagrant ssh

在上面的命令中,vagrantfile是用Ruby域特定语言(DSL)编写的,用于配置vagrant虚拟机。

在流浪汉文件中,我们有config对象。 Vagrant将使用此配置对象配置VM。

Vagrant.configure("2") do |config| 
……. 
End

在配置块中,您将告诉vagrant使用哪个VM映像,以便引导节点。

config.vm.box = "opscode-ubuntu-12.04" 
config.vm.box_url = https://opscode-vm-bento.s3.amazonaws.com/ 
   vagrant/opscode_ubuntu-12.04_provisionerless.box

在下一步中,您将告诉Vagrant下载omnibus插件。

config.omnibus.chef_version = :latest

选择要启动的VM框后,配置如何使用Chef设置该框。

config.vm.provision :chef_client do |chef| 
….. 
End 

在其中,您需要设置有关如何将虚拟节点连接到Chef服务器的说明。您需要告诉Vagrant,您需要在哪里将所有Chef内容存储在节点上。

chef.provisioning_path = "/etc/chef"