使用Chef,这可以像将第一台服务器分配给两个角色一样简单,然后将每个角色分配给不同计算机。每个角色都将包含使计算机进入完全运行状态以履行其特定角色所需的配置详细信息。...在我们的角色中,我们可以设置默认属性,这些属性可以覆盖其他任何地方设置的任何默认属性 我们还可以设置覆盖属性,其优先级高于许多其他属性声明。我们可以使用它来尝试强制分配了此角色的节点以某种方式运行。...在工作站和服务器之间传输角色 保存使用knife命令创建的JSON文件时,将在Chef服务器上创建角色。我们在本地创建的Ruby文件不会上传到服务器。...path/to/save/to 将角色分配给节点 所以现在,无论我们使用何种格式,我们都在Chef服务器上担任角色。...我们将节点的角色分配给节点,就像节点的run_list中的配置一样。
由于此前我从未遇到过Chef,因此我需要在最短的时间内,找出一个可以使用Chef基础架构shell一定范围内所有敏感主机的方法。以下是我的实行过程。 注意:所有这些很可能都是从命令行执行的。...现在,你需要创建一个cookbook和recipe。我使用以下命令来执行此操作。但该命令似乎已被弃用,你可以根据提示来替换该命令。 ?...成功执行后,我们将会获取到以下输出结果: ? 填充你的cookbook模板文件。下面所有你需要的都在recipes/default.rb中。 ? 填充metadata.rb文件。...将cookbook recipe分配给你想要shell的目标,并将其添加到每个节点的运行列表中。 转到节点列表,单击你感兴趣的节点,单击Edit。...kill你的Meterpreter会话,删除你创建的管理用户以及recipe。你可以通过以下命令完成。 关闭会话: ? 主机与knife的连接: ?
6.访问您选择的节点并运行chef-client: chef-client 它应该输出Chef的成功运行配置方案。如果没有,请查看代码以查找错误,通常它们会在chef-client运行输出中定义。...6.从该节点运行chef-client: chef-client 如果由于语法错误导致配方失败,Chef将在输出期间标注它。...7.chef-client运行成功后,请检查Apache是否正在运行: systemctl status apache2 它的配置方案输出应该表明apache2正在运行。...1.因为可能会需要配置多个网站,因此请使用Chef的属性功能来定义虚拟主机文件的特定内容。...ChefDK(chef软件工具包)中有一个内置命令,可以在cookbook中生成属性目录和default.rb文件。
大部分由社区创建的模块默认情况下会安装二进制文件,并提供尽可能合理的配置,而且会为我们暴露出一些属性,方便对其进行覆盖。 这些属性通常包含特定于用户环境的值。...一个简单的例子:Chef 首先需要安装Chef Development Kit(ChefDK)。 如前所述,我们需要一个recipe来安装Nginx。...cookbook通常存在于`cookbooks`目录中,在项目的根目录运行以下命令: mkdir cookbooks 现在让我们创建一个cookbook,用于放置我们的新recipe: chef generate...这个文件包含了默认的recipe,我们将安装Nginx的命令放到这个文件中。...其次,我们使用`chef-solo`替换了`shell`。我们告诉它在哪里可以找到cookbooks目录,以及要运行哪个recipe。
recipe[db2] 此命令将名为 db2 的 Cookbook 下的默认 Recipe(default.rb)添加到名为 chef-node2 的 Node 的 run_list 中。...也可以指定 Cookbook 里的某个特定 Recipe 添加,如: # knife node run_list add chef-node2 recipe[db2::createdb] 此命令就将特定的...调用 Chef REST API Chef 的 REST API 提供了对 Chef 内对象的增删改查操作,如增加、删除一个节点、修改节点属性;查询一个 Cookbook 等。...这里我们可以看到,被用作数字签名的属性,在请求中再次出现了,包括 HTTP Method,X-Ops-Content-Hash,X-Ops-Timestamp,X-Ops-UserId。...chef_environment": "_default", "run_list": [ "recipe[recipe_name]" ] "json_class": "Chef:
Chef就相当于这样的脚本管理工具。但其功能、可定制性和便捷性都要强大的多,它将脚本命令代码化,定制时只需要修改代码,而不需要修改命令,Chef自动会将一台机器配置成你想要的样子。...下面我将以类比的方法,给大家讲一讲Chef中的一些主要的概念。剩下的概念,我们在下一节中写Recipe的时候再讲。 1) Recipe 第一个要讲的是Recipe,食谱。...它是一个检测属性的工具,在每一次执行Chef-client之前,Ohai会检测此机器上的各种属性,提供给Chef-client。它是Chef-client的一部分。...你需要做的,仅仅是一条命令: vagrant up 当然也可以使用他们自己的Chef Training Lab。在这里 看如何申请它们的虚拟机。...我们只需要运行下面的命令: knife bootstrap ec2-xx-xx-xx-xx.compute-1.amazonaws.com --sudo -x chef -P chef -N node1
另一方面,配置项可能有也可能没有分配给它的财务值,它不会有任何与之相关的折旧,因此它的生命不依赖于其财务价值,而是取决于该项目对该组织的过时时间。...根据需要列出其他详细信息(也称为资源属性)。 被分类为配方(Recipes),来描述工作配置。 Q14. / Chef 的 Recipe 是什么?...执行其他 Recipe。 Q15. / Cookbook 与 Recipe 有何不同? / 可以简单地说,“Recipe 是一组资源,主要配置软件包或某些基础架构。...Cookbook 将 Recipe 和其他信息整合在一起,比单独使用 Recipe 更易于管理。” 译者注:Cookbook 类似于食谱集;Recipe 类似于食谱。...模块的一个重要属性是幂等性,这意味着即使一个操作重复多次(例如从停电中恢复),它会始终将系统置于同一状态。 Q18. / 什么是 Ansible 的 Playbooks?
另一方面,配置项可能有也可能没有分配给它的财务值,它不会有任何与之相关的折旧,因此它的生命不依赖于其财务价值,而是取决于该项目对该组织的过时时间。...根据需要列出其他详细信息(也称为资源属性)。 被分类为配方(recipes),来描述工作配置。 Q14、Chef 的 Recipe 是什么?...执行其他 recipe。 Q15、Cookbook 与 Recipe 有何不同? 可以简单地说,“Recipe 是一组资源,主要配置软件包或某些基础架构。...Cookbook 将 recipe 和其他信息整合在一起,比单独使用 recipe 更易于管理。” 译者注:cookbook 类似于食谱集;recipe 类似于食谱。...模块的一个重要属性是幂等性,这意味着即使一个操作重复多次(例如从停电中恢复),它会始终将系统置于同一状态。 Q18、什么是 Ansible 的 playbooks?
Chef工作站 在Chef工作站中,您可以创建和配置任意的“菜谱”、“烹饪手册”、属性和其他更改,这些对于工作站来说都是有效的。...有关重新生成SSL证书的详细信息,请参阅Chef说明文档。 请在客户端运行命令knife.rb,验证客户端均已正确配置: knife client list 此命令应输出验证器名称。...这部分内容是可选的,我们仅提供有关将“菜谱”如何下载到工作站,然后如何将其推送到服务器的说明,这部分内容同时包含可扩展和可试验的基本“菜谱”框架。...打开default.rb文件以检查默认的cookbook"配方": # # Cookbook Name:: cron-delvalidate # Recipe:: Chef-Client Cron &...切换到您的自检(自动定时拉取服务器的cookbook)客户机节点并运行初始chef-client命令: chef-client 如果以非root用户身份运行此命令,请在命令前面加上sudo。
,它们是内部装有一个工具叫做Chef-Client,这东西会自动到Chef-Server上获取自己的要执行命令清单 可以安装在任意系统上,包括windows DataBag 这是一个集中包含各种配置信息的数据区...Chef除了提供命令行工具knife外,还提供了一个Web界面来使用。在这个web界面上,我们可以看到针对以上每个概念的入口,可以直接在上面填写数据和操作。...命令。...安装配置的情况都是不一样的,所以Enviroments包括了以下部分: l 多个角色定义 l 指定每个环境中的“角色”(Role)的run list l 每个环境的Cookbook版本 l 不同的环境属性...Chef Client作为执行者访问这些API;Knife则以命令行模式执行这些Chef server的API;一套Web UI系统以图形方式执行Chef server API。
角色(Roles): 是将节点按照其功能、类型、位置等分类的一种方式,可将特定的食谱和属性分配给特定的角色。...属性(Attributes): 用于定义节点上的特定配置信息,如软件的版本号、配置文件的路径等。...常用的Chef命令 1.knife: 是Chef的命令行工具,用于与Chef-server交互,管理节点、cookbooks、环境等。...knife ssh 'name:*' 'sudo chef-client' #对所有节点执行chef-client命令。...chef-solo -c solo.rb -j node.json #使用指定的配置文件和json属性运行chef-solo。 是否收费 Chef是一个部分开源的项目。
它需要在目标节点上安装一个主服务器和客户端代理,并提供一个安装独立客户端(等效于 chef-solo)的选项。您可以使用 Puppet 命令下载并安装部署模块。...Puppet 更多地依赖于自己的特定于域的语言 (DSL) 来定义配置规则,而 Chef 的 DSL 只是 Ruby 的补充,所以大部分 Chef 菜谱 (recipe) 都是使用标准 Ruby 代码编写的...参数(可选)指示了资源的属性。声明这些参数比硬编码这些值更方便。 输出(可选)指示了在运行 Heat 模板后创建的输出,比如服务器的 IP 地址。...每个资源包含: 引用 — 用于创建嵌套堆栈 特性 (property) — 资源的输入值 属性 (attribute) — 资源的输出值 Juju Juju 是 Canonical 开发的一个开源自动服务编排管理工具...Dockerfile Dockerfile 是一个文本文档,包含用户可在命令行上调用来组装映像的所有命令。使用 docker build,您可以创建一个自动化的编译版来连续执行一些命令行指令。
描述一些基本的 Git 命令。 下表总结了一些基本的 Git 命令。 命令 目的 git init 启动一个新的存储库。...如何将 Jenkins 从一台服务器复制到另一台服务器? 步骤 1:复制相关作业目录,将作业从一个 Jenkins 安装转移到另一个安装。 步骤 2:要复制现有作业,请克隆作业目录并为其指定新名称。...Chef中为什么使用SSL证书? 为了确保每个节点都能访问正确的数据,Chef 服务器和客户端之间使用了 SSL 证书。 每个节点都有一组私钥和公钥。在 Chef 服务器上,保存公钥。...Chef CookBook 与 Chef Recipe 有何不同? Chef Recipe 是主要用于配置软件和其他基础设施的资源集合。Ruby 是用来编写菜谱的语言。...Kubectl 是一个命令行工具,允许用户向 Kubernetes 集群发出命令。Ctl 在这种情况下代表“控制”。可以使用“kubectl”命令行界面部署应用程序、检查和管理集群资源以及查看日志。
在任何情况下,Chef 应安装要配置的节点或VM上。 Chef 客户端是用 Ruby 语言编写的,Chef 服务器是用 Ruby 和 Erlang 语言编写的。...Chef 菜谱的示例: include_recipe "apt" package 'nginx' do action :install end service 'nginx' do...另外 Salt 支持 ad-hoc 命令。Salt 状态文件(以.sls 为文件扩展名)以 YAML 格式定义幂等任务。 Salt 使用 Python 语言编写。...还有配置管理工具,如Ansible,Chef,Puppet 可以在 hook 里面做服务器配置管理。 Charm bundle 允许你将一组 charms,它们的属性和关系导出到 YAML 文件中。...Juju 包含 命令行客户端和web客户端。 Juju 使用 Go 语言编写。
从命令行运行Recipe,并开始注释。Recipe装饰器使用你的函数的签名来生成一个命令行界面,使你可以轻松地使用不同的设置来运行相同的Recipe,并在你的注释项目中重用Recipe。...当你运行Recipe命令时,Prodigy将启动一个web服务器,这样你就可以开始注释了。...RECIPE.PY @prodigy.recipe('custom_recipe', dataset=("ID")) def custom_recipe(dataset): # text source...文本相似度:将一个数值相似的分数分配给两段文字。有了Prodigy,你可以判断两个句子中的哪一个更好。 图像分类:根据对象、样式、上下文或任何其他你感兴趣的度量对图像进行分类。...内置的NLP Recipes输出spaCy模型,你可以将其打包到可安装的模块中。你也可以通过定制的Recipe来使用任何机器学习库。
Recipe: gitlab::gitlab-workhorse * runit_service[gitlab-workhorse] action restart (up to date) Recipe...runit_service[gitlab-pages] action restart (up to date) Running handlers: Running handlers complete Chef...所幸的是,程序有异常检查,判断版本不符合要求,并未允许执行升级操作,不停输出类似下面的日志,提示我们检查升级文档。 Thank you for using GitLab Docker Image!...实际运行会遇到这样的报错: Recipe Compile Error in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb...这是因为新版本的GitLab会在调用 CI 的时候,发送 --login 参数,如果用户目录包含 .bashrc、 .bash_logout 文件,则会被加载执行,这些文件中可能存在一些意外退出执行过程的命令
Recipe: gitlab::gitlab-workhorse * runit_service[gitlab-workhorse] action restart (up to date) Recipe...runit_service[gitlab-pages] action restart (up to date) Running handlers: Running handlers complete Chef...所幸的是,程序有异常检查,判断版本不符合要求,并未允许执行升级操作,不停输出类似下面的日志,提示我们检查升级文档。 Thank you for using GitLab Docker Image!...实际运行会遇到这样的报错: Recipe Compile Error in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb...这是因为新版本的GitLab会在调用 CI 的时候,发送 --login 参数,如果用户目录包含 .bashrc、.bash_logout 文件,则会被加载执行,这些文件中可能存在一些意外退出执行过程的命令
我们可以使用user-create命令的子命令chef-server-ctl来完成此操作。该命令需要在创建过程中传递许多字段。...f附加标志,以指定用于输出新用户的私有RSA密钥的文件名。...OpenSSH是标准的SSH套件,包含一个SSH代理,可以通过输入以下命令来启动: eval $(ssh-agent) 您应该看到看起来像这样的输出(数字可能会有所不同): Agent pid 13881...knife连接和控制Chef基础结构所需的信息来配置命令。...然后,新节点使用验证器密钥与Chef服务器联系,并作为回报,接收其自己唯一的客户端密钥以及已分配给它的任何配置。此过程使新服务器进入其初始状态,并为将来的管理进行设置。
使用以下命令,我们可以列出可用的目标(示例输出是在使用 Unix Makefiles 作为生成器的 GNU/Linux 系统上获得的): $ cmake --build ....现在我们可以尝试构建包: $ conda build conda-recipe 我们将在屏幕上看到大量输出,但一旦构建完成,我们就可以安装包。...CMake INTERFACE库是构建系统中的目标,但不直接创建任何构建输出。然而,由于它们是目标,我们可以在它们上面设置属性。就像“真实”目标一样,它们也可以被安装、导出和导入。...然后我们需要根据需要设置属性,我们遵循在目标上使用INTERFACE属性调用适当的 CMake 命令的模式,使用以下命令: target_compile_options,用于设置INTERFACE_COMPILE_OPTIONS...我们刚刚在 IntelMKL 目标上设置的属性可以通过cmake_print_properties命令打印出来供用户查看。最后,我们链接到IntelMKL目标。
领取专属 10元无门槛券
手把手带您无忧上云