`

chef的自述

 
阅读更多
Chef  官方下载的地址 https://downloads.chef.io/

Chef是面对IT专业人员的一款配置管理和自动化工具,它可以配置和管理你的基础设施。
下面是我们将要在本篇中要设置和配置Chef的主要组件。

安装Chef的要求和版本
我们将在下面的基础环境下设置Chef配置管理系统。

Chef服务端的安装和配置
Chef服务端是核心组件,它存储配置以及其他和工作站交互的配置数据。让我们在他们的官网下载最新的安装文件。
我使用下面的命令来下载和安装它。
(1) 下载Chef服务端
root@ubuntu-14-chef:/tmp# wgethttps://packages.chef.io/stable/ubuntu/14.04/chef-server-core_12.6.0-1_amd64.deb

(2) 安装Chef服务端
root@ubuntu-14-chef:/tmp# dpkg -i chef-server-core_12.6.0-1_amd64.deb

(3) 重新配置Chef服务端
现在运行下面的命令来启动所有的chef服务端服务,这一步也许会花费一些时间,因为它需要由许多不同一起工作的服务组成一个可正常运作的系统。
root@ubuntu-14-chef:/tmp# chef-server-ctl reconfigure

chef服务端启动命令'chef-server-ctl reconfigure'需要运行两次,这样就会在安装后看到这样的输出。
Chef Client finished, 342/350 resources updated in 113.71139964 secondsopscode Reconfigured!

(4) 重启系统
安装完成后重启系统使系统能最好的工作,不然我们或许会在创建用户的时候看到下面的SSL连接错误。
ERROR: Errno::ECONNRESET: Connection reset by peer - SSL_connect

(5) 创建新的管理员
运行下面的命令来创建一个新的管理员账户及其配置。创建过程中,用户的RSA私钥会自动生成,它需要保存到一个安全的地方。--file选项会保存RSA私钥到指定的路径下。
root@ubuntu-14-chef:/tmp# chef-server-ctl user-create kashi kashi kashi kashif.fareedi@gmail.com kashi123 --filename /root/kashi.pem

Chef服务端的管理设置
Chef Manage是一个针对企业级Chef用户的管理控制台,它提供了可视化的web用户界面,可以管理节点、数据包、规则、环境、Cookbook 和基于角色的访问控制(RBAC)。
(1) 下载Chef Manage
从官网复制链接并下载chef manage的安装包。
root@ubuntu-14-chef:~# wget https://packages.chef.io/stable/ubuntu/14.04/chef-manage_2.1.2-1_amd64.deb

(2) 安装Chef Manage
使用下面的命令在root的家目录下安装它。
root@ubuntu-14-chef:~# chef-server-ctl install opscode-manage --path /root

(3) 重启Chef Manage和服务端
安装完成后我们需要运行下面的命令来重启chef manage和服务端。
root@ubuntu-14-chef:~# opscode-manage-ctl reconfigureroot@ubuntu-14-chef:~# chef-server-ctl reconfigure

Chef Manage网页控制台
我们可以使用localhost或它的域名来访问网页控制台,并用已经创建的管理员登录。

chef amanage
(1) Chef Manage创建新的组织
你或许被要求创建新的组织,或者也可以接受其他组织的邀请。如下所示,使用缩写和全名来创建一个新的组织。

Create Org
(2) 用命令行创建新的组织
我们同样也可以运行下面的命令来创建新的组织。
root@ubuntu-14-chef:~# chef-server-ctl org-create linux Linoxide Linux Org. --association_user kashi --filename linux.pem

设置工作站
我们已经完成安装chef服务端,现在我们可以开始创建任何recipes(基础配置元素)、cookbooks(基础配置集)、attributes(节点属性),以及做一些其他修改。
(1) 在Chef服务端上创建新的用户和组织
为了设置工作站,我们需要用命令行创建一个新的用户和组织。
root@ubuntu-14-chef:~# chef-server-ctl user-create bloger Bloger Kashif bloger.kashif@gmail.com bloger123 --filename bloger.pem root@ubuntu-14-chef:~# chef-server-ctl org-create blogs Linoxide Blogs Inc. --association_user bloger --filename blogs.pem

(2) 下载工作站入门套件
在工作站的网页控制台中下载并保存入门套件,它用于与服务端协同工作。

Starter Kit
(3) 下载套件后,点击"Proceed"

starter kit
用于工作站的Chef开发套件设置
Chef开发套件是一款包含开发chef所需的所有工具的软件包。它捆绑了由Chef开发的带Chef客户端的工具。
(1) 下载 Chef  DK
我们可以从它的官网链接中下载开发包,并选择操作系统来下载chef开发包。

Chef DK
复制链接并用wget下载
root@ubuntu-15-WKS:~# wget https://packages.chef.io/stable/ubuntu/12.04/chefdk_0.13.21-1_amd64.deb
搜索
(2) Chef开发套件安装
使用dpkg命令安装开发套件
root@ubuntu-15-WKS:~# dpkg -i chefdk_0.6.2-1_amd64.deb

(3) Chef DK 验证
使用下面的命令验证客户端是否已经正确安装。
root@ubuntu-15-WKS:~# chef verify
Running verification for component 'berkshelf'Running verification for component 'test-kitchen'Running verification for component 'chef-client'Running verification for component 'chef-dk'Running verification for component 'chefspec'Running verification for component 'rubocop'Running verification for component 'fauxhai'Running verification for component 'knife-spork'Running verification for component 'kitchen-vagrant'Running verification for component 'package installation'Running verification for component 'openssl'..............---------------------------------------------Verification of component 'rubocop' succeeded.Verification of component 'knife-spork' succeeded.Verification of component 'openssl' succeeded.Verification of component 'berkshelf' succeeded.Verification of component 'chef-dk' succeeded.Verification of component 'fauxhai' succeeded.Verification of component 'test-kitchen' succeeded.Verification of component 'kitchen-vagrant' succeeded.Verification of component 'chef-client' succeeded.Verification of component 'chefspec' succeeded.Verification of component 'package installation' succeeded.

(4) 连接Chef服务端
我们将创建 ~/.chef目录,并从chef服务端复制两个用户和组织的pem文件到该目录下。
root@ubuntu-14-chef:~# scp bloger.pem blogs.pem kashi.pem linux.pem root@172.25.10.172:/.chef/
root@172.25.10.172's password:bloger.pem 100% 1674 1.6KB/s 00:00blogs.pem 100% 1674 1.6KB/s 00:00kashi.pem 100% 1678 1.6KB/s 00:00linux.pem 100% 1678 1.6KB/s 00:00

(5) 编辑配置来管理chef环境 **
现在使用下面的内容创建"~/.chef/knife.rb"。
root@ubuntu-15-WKS:/.chef# vim knife.rbcurrent_dir = File.dirname(__FILE__) log_level :infolog_location STDOUTnode_name "kashi"client_key "#{current_dir}/kashi.pem"validation_client_name "kashi-linux"validation_key "#{current_dir}/linux.pem"chef_server_url "https://172.25.10.173/organizations/linux"cache_type 'BasicFile'cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )cookbook_path ["#{current_dir}/../cookbooks"]

创建knife.rb中指定的“~/cookbooks”文件夹。
root@ubuntu-15-WKS:/# mkdir cookbooks

(6) 测试Knife配置
运行“knife user list”和“knife client list”来验证knife是否工作。
root@ubuntu-15-WKS:/.chef# knife user list

第一次运行的时候可能会看到下面的错误,这是因为工作站上还没有chef服务端的SSL证书。
ERROR: SSL Validation failure connecting to host: 172.25.10.173 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failedERROR: Could not establish a secure connection to the server.Use `knife ssl check` to troubleshoot your SSL configuration.If your Chef Server uses a self-signed certificate, you can use`knife ssl fetch` to make knife trust the server's certificates.

要解决上面的命令的错误,运行下面的命令来获取ssl证书,并重新运行knife user和client list,这时候应该就可以了。
root@ubuntu-15-WKS:/.chef# knife ssl fetchWARNING: Certificates from 172.25.10.173 will be fetched and placed in your trusted_certdirectory (/.chef/trusted_certs).

knife没有办法验证这些是否是有效的证书。你应该在下载时验证这些证书的真实性。
在/.chef/trusted_certs/ubuntu-14-chef_test_com.crt下面添加ubuntu-14-chef.test.com的证书。
在上面的命令取得ssl证书后,接着运行下面的命令。
root@ubuntu-15-WKS:/.chef#knife client listkashi-linux

配置与chef服务端交互的新节点
节点是执行所有基础设施自动化的chef客户端。因此,在配置完chef-server和knife工作站后,通过配置与chef-server交互的新节点,来将新的服务端添加到我们的chef环境下。
我们使用下面的命令来添加与chef服务端协同工作的新节点。
root@ubuntu-15-WKS:~# knife bootstrap 172.25.10.170 --ssh-user root --ssh-password kashi123 --node-name mydns
Doing old-style registration with the validation key at /.chef/linux.pem...Delete your validation key in order to use your user credentials instead Connecting to 172.25.10.170172.25.10.170 Installing Chef Client...172.25.10.170 --2015-07-04 22:21:16-- https://www.opscode.com/chef/install.sh172.25.10.170 Resolving www.opscode.com (www.opscode.com)... 184.106.28.91172.25.10.170 Connecting to www.opscode.com (www.opscode.com)|184.106.28.91|:443... connected.172.25.10.170 HTTP request sent, awaiting response... 200 OK172.25.10.170 Length: 18736 (18K) [application/x-sh]172.25.10.170 Saving to: ‘STDOUT’172.25.10.170100%[======================================>] 18,736 --.-K/s in 0s172.25.10.170172.25.10.170 2015-07-04 22:21:17 (200 MB/s) - written to stdout [18736/18736]172.25.10.170172.25.10.170 Downloading Chef 12 for ubuntu...172.25.10.170 downloading https://www.opscode.com/chef/metadata?v=12&prerelease=false&nightlies=false&p=ubuntu&pv=14.04&m=x86_64172.25.10.170 to file /tmp/install.sh.26024/metadata.txt172.25.10.170 trying wget...

之后我们可以在knife节点列表下看到创建的新节点,它也会在新节点下创建新的客户端。
root@ubuntu-15-WKS:~# knife node listmydns

类似地我们只要通过给上面的knife命令提供ssh证书,就可以在chef设施上创建多个节点。
分享到:
评论

相关推荐

    Chefspec:编写RSpec示例,并生成Chef食谱的覆盖率报告!

    厨师规格 ChefSpec是用于测试厨师食谱的单元测试框架。 ChefSpec使得编写示例和获得菜谱变化的快速反馈变得... 请检查最新git标签的自述文件或您的版本文档的gem来源! ChefSpec旨在至少与Chef的两个最新次要版本保持兼

    Chef-provisioning-aws:使用AWS开发工具包的Chef的AWS驱动程序和资源

    本自述文件正在进行中。 随意打开公关扩大它! 先决条件 证书 您可以通过3种方式提供AWS凭证。 我们将按以下顺序查找凭据,并使用找到的第一个凭据。 该优先级顺序来自 : 通过环境变量ENV["AWS_ACCESS_KEY_ID"] ...

    IBM-CAMHub-Open:以下Chef食谱和Terraform模板位于该组织中。 每次更新食谱或模板之一的版本时,此自述文件都会更新。 观看此存储库,以在有新版本的菜谱或模板时收到通知

    以下Chef食谱和Terraform模板位于该组织中。 每次更新食谱或模板之一的版本时,此自述文件都会更新。 观看此存储库,以在有新版本的菜谱或模板时收到通知。 有关更多信息,请参阅。 辅助脚本 版本信息 食谱 版本 ...

    chef-search-stresser:Go中的实用程序通过广泛的搜索向厨师服务器施加压力

    安装go get -u github.com/PagerDuty/chef-search-stresser# if you want to use the binary and not just the packagego install github.com/PagerDuty/chef-search-stresser用法该自述文件主要遍历命令。...

    fantasy-top-chef

    自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...

    empty_ember_cli_app:用于集成测试 application_ember Chef Cookbook 的空应用

    Empty-ember-cli-app 此自述文件概述了在此 Ember 应用程序上进行协作的详细信息。 这个应用程序的简短介绍可以很容易地转到这里。先决条件您将需要在您的计算机上正确安装以下东西。 (带有 NPM)和安装git clone ...

    ohai:Ohai对您的系统进行配置并发出JSON

    本自述文件适用于想要修改Ohai源代码的开发人员。 对于想要为Ohai编写插件的用户,请参阅文档: 常规文档: : 编写Ohai插件文档: : 开发环境 Ohai的开发依赖项应与捆绑程序一起安装。 只需在bundle install的根...

    cheffian-examples

    此存储库中的食谱提供了用于Chef开发的食谱模式的示例。 它仅假设您已安装并运行 。 使用方法: git克隆这个仓库 将目录(cd)更改为感兴趣的示例 阅读自述文件以了解问题和解决方案 运行rake ,它将使用捆绑程序在...

    java小超市管理系统源码-turbo-octo-telegram:涡轮八电报

    自述文件 所有食谱都应包含一个 README.md 文件,其中包含以下部分。 食用食谱 要求 所需平台 厨师版 所需的食谱 资源 自定义资源操作 参数 用法 默认属性 用法 测试说明 问题跟踪用于记录与说明书相关的问题的 JIRA...

    foodcritic-rules:CustomInk的食品评论规则集合

    我们建议您将所有自定义的食品评论规则存储为Chef托管存储库中的git子模块。 在存储库的根目录中创建一个foodcritic文件夹,并使用cd进入该目录: git clone git@github....

    超级市场:厨师的社区平台

    超级市场 超级市场是Chef的菜谱社区存储库,当前托管在。 超市也可以在内部运行,而不是防火墙。 雨伞项目::已维护问题: 14天拉取请求: 14天该代码旨在使其他人易于贡献。 为此,本自述文件的目的是向您介绍该...

    vagrant:Pelias游荡的开发环境

    有关设置Pelias的新方法,请参阅我们的自述文件建置状态要求具有〜4GB RAM和〜20GB可用磁盘空间的系统,以加载适度的测试环境Ruby2.x 〜> 1.5 〜> 1.7目标通过随附的Chef代码提供安装自己的Pelias系统的参考: 了解...

    bw-deployment-tools:自动化部署资料库

    bw-部署工具 自动化部署资料库 目前有两种口味: vagrant/3.10 -- 简单、一步安装 Bedework、Apache、Postgres。 vagrant/3.10-chef-solo -- 更具交互性的安装。 允许自定义的几个步骤。 请参阅自述文件。

    workstation-configurations

    描述中的“自述文件”指出,这个目录包含了用于自动配置新计算机所需的信息,这意味着它可能包含一系列脚本、配置文件和指南。 “Jinja”是一个Python模板引擎,被提及作为标签,这暗示在这个项目中,可能用到了...

Global site tag (gtag.js) - Google Analytics