精华内容
下载资源
问答
  • 本菜谱将系统配置为独立的Chef 12+ Server。 它将从Package Cloud安装适当的平台特定的Chef-server Omnibus软件包,并执行初始配置。 处理更复杂的Chef Server拓扑(例如“分层”或“ ha”)不在本菜谱范围内。 ...
  • 您可以通过以下方式从安装cargo-chef cargo install cargo-chef 如何使用 :warning:副厨师长并不打算在本地经营它的主要用例是通过在复制实际源代码之前运行来加速容器构建。不要在现有的代码库上运行它,以免文件...
  • aws_ha_chef 食谱 本说明书将在 AWS EC2 中安装和配置高可用性 Chef 服务器集群,该集群具有两个后端服务器和多个前端服务器。 本说明书尝试自动化安装指南中的大部分步骤。 官方安装文档在这里: : 前端服务器和...
  • Chef_debug Chef零调试 描述 Chef Zero Shell可用于调试Chef代码。 该食谱自动提供必要的初始配置,以使外壳程序在可重现/可重复使用的虚拟盒环境(例如VirtualBox)中使用的基于Linux和Windows的临时虚拟机上运行。...
  • Chef服务器迁移时,存储清理脚本所需的脚本的存储库将源11打开到Chef 12 用法 这些脚本是我在chef-server-ctl upgrade失败时使用的脚本 1)我将cd转换到/ tmp / chef12- / organizations // cookbooks目录,并...
  • 一个 Vagrant 插件,将 Chef-apply 添加为提供者。 当您想做一些需要 shell 以外的事情但又不想编写完整的说明书时,这很有用。 此插件已被验证可与以下: VirtualBox(核心的一部分) 它可以与其他 Vagrant ...
  • Chef是实践DevOps和持续集成(ContinuousIntegration)思想的重要工具,它可以把服务器的运行环境(包括服务器软件、依赖包、网络配置等)进行抽象,以特有的配置语法对其进行管理,可自动地进行服务器环境的初始化...
  • 允许您使用Chef节点列表的公共密钥对Chef Data Bag Item进行加密的Gem。 这仅允许那些厨师节点解密加密的值。 有关Chef-Vault的工作原理的详细说明,请参阅此博客 由Nell Shamrell-Harrington。 安装: 确保您...
  • 配置了映像可以更轻松地在本地模式下使用Chef运行Cookbook(带Chef-zero )。 这些图像安装了Chef 13 ,还包括Berkshelf和git。 安装 $ docker pull zuazo/chef-local:debian-7 支持标签 centos-6 :CentOS 6映像...
  • Chef Provisioning已于2019年8月31日正式终止生命,并且不再包含在Chef DK中。 Chef Provisioning源代码和驱动程序已移入Chef-boneyard组织。 如果您当前是Chef Provisioning的用户,请与您的Chef客户成功经理或客户...
  • 想用Chef来准备一下我平时常用的Mac环境。 设置 由于需要主厨,请使用以下命令安装主厨。 感谢厨师11,ruby+厨师优先或cookbook执行优先的问题已经结束! $ curl -sL https://www.opscode.com/chef/install.sh | ...
  • Chef Workstation安装了开始使用Windows,Mac和Linux上的Chef产品所需的一切。 这包括: 厨师工作站应用程序 主厨基础客户 主厨InSpec 主厨人居 Chef命令行工具 测试厨房 烹饪风格 适用于云的各种Test Kitchen和...
  • taste-tester 是一个用于管理 chef-zero 实例和并用来测试生产服务器上变化的软件。 标签:taste 分享 window._bd_share_config = { "common": { ...
  • 本文试图找到类似Puppet、Chef、Ansible这样自动化配置管理工具的共性,以不至于迷失在杂乱的尘世中。总会有各种人为各种目的造概念,来让世界更复杂。本文同样适用于没有运维经验的人。因为我就是一个没有运维经验...
  • 本文介绍了一种为云计算平台中常用的配置管理工具Chef所打造的集成开发测试环境解决方案,利用了轻量级虚拟化技术Docker,将Chef-Server、Chef-Workstation和Chef-Client部署在同一个虚拟机当中,实现了系统资源最小...
  • Chef运行期间将验证规则应用于节点属性的Chef Cookbook。 菜谱本身很小。 大多数胆量都在一个名为“ chef-attribute-validator”的宝石中。 我为什么要那个呢? 属性合并很难。 意外覆盖某些内容(在角色,节点,...
  • ** GPG **截至撰写本文(5/24/18)时,在超市中发行的社区gpg食谱已转让给sous-chef集团以拥有所有权。 但是,此菜谱所依赖的功能尚未发布。 因此,如果您运行此食谱,请确保使用berkshelf来确保将正确的食谱依赖项...
  • Chef Infra是一种配置管理工具,旨在为您的整个基础架构带来自动化。 想尝试Infra Chef吗? 有关Chef Infra的用法,请参阅 ,这是我们的自定进度,完全免费的学习平台。 “学习厨师”还包括针对厨师基础设施,厨师...
  • 烹饪书 文档工作流程图 此工作流图可帮助cisco-cookbook项目的用户,开发人员和维护人员选择适合其任务的文档。 用户指南 :代理安装和配置指南 :自动安装和配置代理... 该食谱提供的资源和功能将随着思科,Chef So
  • 使用 Jenkins 从 git 存储库驱动您的 Chef 环境的持续部署和同步 它是如何工作 # 当您使用 Chef-jenkins 时,您应该始终处于 Chef-repo 中! (毕竟,我们要从詹金斯那里跑出来——但稍后再看) # 将 git 存储库...
  • chef-server-webui是一个简单的 Rails 3.2 应用程序,它与 Chef 服务器 API(又名 Erchef)对话以获取所有后端数据。 安装很容易,因为chef-server-webui已经作为默认 Chef-server Omnibus 软件包安装的一部分进行了...
  • cookbook 'filebeat' , github : 'vkhatri/chef-filebeat' , tag : 'v2.4.0' 资料库 https://github.com/vkhatri/chef-filebeat 支持的操作系统 视窗 亚马逊Linux CentOS的 费朵拉 的Ubuntu 德比安 Mac OSX 在...
  • 所有安装都需要一个称为chef-repo 的中央工作区。 这是一个存储和管理原始对象(说明书、角色、环境、数据包和厨师存储库配置文件)的地方。 Chef-repo 应保持在版本控制之下,例如 ,然后像源代码一样进行管理。 ...
  • 使用Terraform和Chef在AWS中配置简单环境 这是一个如何使用Terraform和Chef在AWS中配置简单环境的示例。 运行后,您将得到: 运行Nginx的循环负载均衡器节点 两个应用程序节点运行一个位于src /中的简单Golang应用...
  • 用于管理、安装和配置 RabbitMQ(Erlang 消息队列应用程序)的 Chef 手册。 这本食谱特别由rabbitmq_http_api_client gem和amqp gem 提供支持。 因此,它强制管理 API 可用,并且可以完成从队列管理到用户创建和...
  • 将 config/example.json 复制到 config/pi00.json run ./deploy.sh pi00 pi 如果出现提示,请登录,chef 将安装您需要的一切。 附加信息 文件夹结构: config 包括主机的 json 配置。 食谱是保存所有食谱以部署到...
  • Mastering Chef Provisioning

    2017-10-19 15:25:42
    Mastering Chef Provisioning. Key Features This is the first Chef book focused on provisioning infrastructure as its sole task. The book offers a clear solution to a specific pain point: learn to ...
  • 厨师规格 ChefSpec是用于测试厨师食谱的单元测试框架。 ChefSpec使得编写示例和获得菜谱变化的快速反馈变得容易,而无需虚拟机或云服务器。 ChefSpec在本地运行您... ChefSpec旨在至少与Chef的两个最新次要版本保持兼
  • 安装node(前提是node能解析chef_server_url中的域名,可以查看workstation中/root/.chef/config.rb文件) knife bootstrap 192.168.16.123 -U root -P 1

    本文是参考官网,如果有理解错误欢迎指正,问题欢迎留言一起探讨

    安装部署

    chef server

    官方文档:https://docs.chef.io/server/install_server/
    重要前提:修改好自己的hostname(我配置的值为chefserver,workstation和node机器都需要能解析),时钟同步,关闭防火墙

    1. 下载安装包然后上传的到服务器安装
      下载地址:https://downloads.chef.io/chef-server/
      [root@chefworkstation ~] rpm -Uvh chef-server-core-12.19.31-1.sles12.x86_64.rpm
      
    2. 配置、启动服务:chef-server-ctl命令帮助文档:https://docs.chef.io/server/ctl_chef_server/
      [root@chefworkstation ~] chef-server-ctl reconfigure
      
    3. 创建administrator用户
      [root@chefworkstation ~] mkdir -p /path/to
      [root@chefworkstation ~] chef-server-ctl user-create janedoe Jane Doe janed@example.com 'abc123' --filename /path/to/janedoe.pem
      
    4. 创建organization并将用户janedoe关联到组织的admin安全组
      [root@chefworkstation ~] chef-server-ctl org-create 4thcafe 'Fourth Cafe, Inc.' --association_user janedoe --filename /path/to/4thcafe-validator.pem
      
      为了方便管理我创建一个cw用户,并将cw加入admin组,后续安装workstation的时候会用到cw.pem文件
      [root@chefworkstation ~] chef-server-ctl user-create cw chef workstation cw@example.com '111111' --filename /path/to/cw.pem
      [root@chefworkstation ~] chef-server-ctl org-user-add 4thcafe cw --admin
      

    chef workstation

    官方文档:https://docs.chef.io/workstation/install_workstation/
    重要前提:修改好自己的hostname,能解析chefserver(server机器的hostname),配置时钟同步,关闭防火墙,最小内存4G

    1. 安装软件包
      [root@chefworkstation ~] wget https://packages.chef.io/files/stable/chef-workstation/21.2.278/el/8/chef-workstation-21.2.278-1.el7.x86_64.rpm
      [root@chefworkstation ~] yum localinstall chef-workstation-21.2.278-1.el7.x86_64.rpm
      [root@chefworkstation ~] chef -v
      Chef Workstation version: 21.2.278
      Chef Infra Client version: 16.10.8
      Chef InSpec version: 4.26.4
      Chef CLI version: 3.1.1
      Chef Habitat version: 1.6.181
      Test Kitchen version: 2.10.0
      Cookstyle version: 7.8.0
      
      查看安装目录,默认workstation是安装在/opt下
      [root@chefworkstation opt] ls /opt/
      chef-workstation
      
    2. 将Chef Workstation中的Ruby设置为linux默认ruby
      [root@chefworkstation ~] echo 'eval "$(chef shell-init bash)"' >> ~/.bashrc
      
      重新开一个终端(重新开一个xshell)执行which ruby
      [root@chefworkstation ~] which ruby
      /opt/chef-workstation/embedded/bin/ruby
      
    3. 创建repository 仓库用于存放本地的cookbook等资源(命令中chef-repo代表你要创建的repository名字),最后会在执行命令的目录下创建仓库,为方便管理我选择和workstation放在同一个目录下
      [root@chefworkstation ~] cd /opt/
      [root@chefworkstation ~] chef generate repo chef-repo
      
      (chef命令帮助文档:https://docs.chef.io/workstation/ctl_chef/#chef-generate-repo
      最后目录结构如下
      [root@chefworkstation opt] ll /opt/
      drwxr-xr-x 6 root root 161 Aug 13 10:08 chef-repo
      drwxr-xr-x 7 root root 186 Aug 13 09:46 chef-workstation
      [root@chefworkstation opt] tree chef-repo/
      chef-repo/
      ├── chefignore
      ├── cookbooks
      │   ├── example
      │   │   ├── attributes
      │   │   │   └── default.rb
      │   │   ├── metadata.rb
      │   │   ├── README.md
      │   │   └── recipes
      │   │       └── default.rb
      │   └── README.md
      ├── data_bags
      │   ├── example
      │   │   └── example_item.json
      │   └── README.md
      ├── LICENSE
      ├── policyfiles
      │   └── README.md
      └── README.md
      7 directories, 11 files
      
    4. 使用knife configure命令创建credentials文件(~/.chef/目录)用于和server通信(创建完成后使用knife config show查看)
      该命令会要求提供两个参数Chef Server URL和Client Name,我的参数内容如下:
      Chef Server URL:https://chefserver/organizations/4thcafe(chefserver是server机器的hostname,需要在workstation的hosts里面添加解析,4thcafe是server上创建的组织名称)
      Client Name:cw (server上创建的用户)
      [root@chefworkstation opt] knife configure
      #查看内容
      [root@chefworkstation cookbooks] knife config show
      Loading from credentials file /root/.chef/credentials
      chef_server_url: https://chefserver/organizations/4thcafe
      client_key:      /root/.chef/cw.pem
      config_file:
      log_level:       warn
      log_location:    STDERR
      node_name:       cw
      profile:         default
      
    5. 将server上用户cw的pem文件拷贝到workstation ~/.chef路径,查看目录结构
      [root@chefworkstation opt] ll ~/.chef/
      -rw-r--r-- 1 root root   36 Aug 13 10:08 chef_guid
      -rw-r--r-- 1 root root  133 Aug 13 10:35 credentials
      -rw-r--r-- 1 root root 1674 Aug 13 10:52 cw.pem
      [root@chefworkstation opt]
      
      credentials:knife命令的配置文件(类似于nginx.conf这种文件),详细文件解读参考: https://docs.chef.io/workstation/config_rb/
      cw.pem:workstation上运行命令,后台通过调用server的API完成相应改动,cw.pem用于API服务验证
    6. 验证workstation与server通信是否正常
      #由于server使用自签证书,需要在workstation添加信任(knife ssl fetch)
      [root@chefworkstation opt] knife ssl fetch
      #查看所有client,如果返回结果类似如下则表示workstation可以和server正常通信
      [root@chefworkstation opt] knife client list
      4thcafe-validator
      

    chef client安装

    官方文档:https://docs.chef.io/workstation/knife_bootstrap/
    重要前提:修改好自己的hostname,能解析chefserver(server机器的hostname),配置时钟同步,关闭防火墙

    chef client安装是指在被管理的node上安装客户端程序chef client,该操作是在workstation上执行命令完成
    在workstation上执行命令安装client(修改命令中的IP,服务器登录的账号密码)

    #192.168.16.12: node节点的IP
    #chefnode2:node节点的hostname
    #root: 登录node服务器的用户名
    #1:登录node服务器的用户名对应的密码
    [root@chefworkstation opt]knife bootstrap 192.168.16.12 -N chefnode -U root -P 1
    

    在workstation检查node是否安装成功

    [root@chefworkstation opt] knife node list
    chefnode
    

    登录node节点,检查安装目录(默认安装路径是/opt/chef)

    [root@chefnode chef] ll /opt/chef/
    drwxr-xr-x 2 root root   204 Aug 12 13:21 bin
    drwxr-xr-x 7 root root    67 Aug 12 13:21 embedded
    -rw-r--r-- 1 root root 35962 Jul 28 03:24 LICENSE
    drwxr-xr-x 2 root root  8192 Aug 12 13:21 LICENSES
    -rw-r--r-- 1 root root  7002 Jul 28 03:25 version-manifest.json
    -rw-r--r-- 1 root root  3500 Jul 28 03:25 version-manifest.txt
    [root@chefnode chef]
    

    knife命令详解:https://docs.chef.io/workstation/knife/

    实战:Quick Start

    接下来讲解如何编写recipe,创建文件,文件夹,安装软件包操作,总体流程如下
    workstation本地创建repo->在repo中创建cookbook->编写recipe->本地执行recipe(非必须)->上传cookbook到server->node执行recipe

    1. 本地创建一个repo:myrepo
      [root@chefworkstation cookbooks] cd /opt/
      [root@chefworkstation opt] chef generate repo myrepo
      
    2. 创建本地cookbook:mycookbook
      [root@chefworkstation opt] cd myrepo/cookbooks/
      [root@chefworkstation cookbooks] chef generate cookbook mycookbook
      
    3. 编写recipe,具体语法格式和参数说明参考:
      recipe语法格式:https://docs.chef.io/resource/
      所有resource类型和参数:https://docs.chef.io/resources/
      [root@chefworkstation cookbooks] cd mycookbook/
      [root@chefworkstation mycookbook] vim recipes/default.rb
      写入内容如下注意(action和:之间有空格)
      #使用directory resource创建文件夹
      directory '/home/resource_directory' do
          action :create
      end
      
      #使用file resource创建文件
      file '/home/resource_directory/resource_file' do
          content 'This is created by chef!'
      end
      
      #使用bash resoure执行linux命令
      bash 'excute command' do
        cwd '/home/'
        code <<-EOH
          mkdir -p resource_bash
          echo "This is created by bash resource!" >> resource_bash_file.txt
        EOH
      end
      #使用package resource安装telnet软件包
      package 'telnet'  do
          action :install
      end
      
    4. 在workstation本地执行recipe,注意目录是否正确
      [root@chefworkstation mycookbook] pwd
      /opt/myrepo/cookbooks/mycookbook
      [root@chefworkstation mycookbook] chef-client -z -o mycookbook
      
    5. 检查对应的文件夹,文件是否创建,以及软件包是否安装
      [root@chefworkstation mycookbook] ll /home/
      total 4
      drwxr-xr-x 2 root root  6 Aug 19 11:40 resource_bash
      -rw-r--r-- 1 root root 34 Aug 19 11:40 resource_bash_file.txt
      drwxr-xr-x 2 root root 27 Aug 19 11:40 resource_directory
      [root@chefworkstation mycookbook] rpm -qa |grep telnet
      telnet-0.17-66.el7.x86_64
      
    6. 至此我们已经学会在workstation本地编写recipe,使用各种自带的resource完成文件创建,软件包安装等操作,接下来就把cookbook上传到server然后在node上执行,使node也达到同样的状态
      [root@chefworkstation mycookbook] knife cookbook upload mycookbook --cookbook-path /opt/myrepo/cookbooks/
      Uploading mycookbook     [0.1.0]
      Uploaded 1 cookbook.
      
      可选操作:命令中需要指定cookbook的路径,我们可以把这个参数写到配置文件中,以后就不需要在命令中手动传参了
      [root@chefworkstation mycookbook] vim /root/.chef/credentials
      #添加以下一行内容:具体可以添加哪些参数,请参考前文提到的credentials文件
      cookbook_path   = '/opt/myrepo/cookbooks/'
      
      到此可能你有疑问,knife这个命令是干什么用的,官方介绍如下:
      knife is a command-line tool that provides an interface between a local chef-repo and the Chef Infra Server
      knife是一个命令行工具,提供本地repo和server交互的接口,简单理解就是knife命令执行大部分时间都和server有关,具体knife的用法请参考前文给的knife官网详细说明
      要查看server上有哪些cookbook:
      [root@chefworkstation mycookbook] knife cookbook list
      mycookbook             0.1.0
      
    7. 接下来就是让node去执行刚才上传的recipe,但是现在node还不知道自己需要执行哪些内容,需要我们告诉它应该执行哪些内容(run list)
      #编辑chefnode这个机器的run list,告诉它需要执行mycookbook的默认recipe, -e vi是指定编辑器,你也可以用vim或者其他
      #为了方便这个也可以写在配置文件中:在credentials文件同目录创建XXX.d文件夹,然后在里面创建XXX.rb文件,写入以下一行
      #knife[:editor]      = 'vi'
      [root@chefworkstation mycookbook] knife node edit chefnode -e vi
      
      修改后内容如下(修改完成后:wq保存,和本地vi文件一样)
      	{
        "name": "chefnode",
        "chef_environment": "_default",
        "normal": {
          "tags": [
      
          ]
        },
        "policy_name": null,
        "policy_group": null,
        "run_list": [
        "recipe[mycookbook::default]"
      ]
      
      }
      
    8. 接着就可以登录node机器然后执行run list
      #在node机器任意目录执行都可以,执行玩后检查文件,文件夹是否创建以及telnet包是否安装。
      [root@chefnode home] chef-client
      
      至此流程操作完成,关于role,environment,policyfile等更多内容请参考官网:https://docs.chef.io/
    展开全文
  • #Vagrant-Chef Vagrant Chef 允许开发人员从干净的状态在 VM 上本地测试食谱。 ###先决条件 下载并安装 。 下载并安装 。 下载仓库git clone git@github.com:giacomo81/vagrant-chef.git ###Create VirtualBox ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,085
精华内容 5,634
关键字:

Chef