使用Chef自动执行Azure虚拟机部署DavidZang

Chef是一个强大的工具,用于提供自动化和所需的状态配置。

使用我们的最新cloud-api版本,Chef提供了与Azure的无缝集成,使得你能够通过单个命令设置和部署配置状态。

在本文中,我将向你展示如何设置你的Chef环境来设置Azure虚拟机,并引导你完成创建一个策略或“食谱”并将此指南部署到AzureVM的过程。

让我们开始吧!

下图描绘了概要的Chef体系结构。

Chef有三个主要的体系结构组件。Chef服务器、Chef客户端(节点)和Chef工作站。

Chef服务器是我们的管理点,对于Chef服务器有两种选择:托管解决方案和本地解决方案。我们将使用托管解决方案。

Chef客户端(节点)是位于你在管理的服务器上的代理。

Chef工作站是我们的管理工作站,我们将在其中创建策略并执行管理命令。我们从Chef工作站运行“knife”命令来管理我们的基础结构。

我们还引入了“食谱”和“配方”的概念。它们实际上是我们定义并应用于我们的服务器的策略。

首先,让我们准备工作站。我使用的是标准Windows工作站。我们需要创建一个目录来存储我们的配置文件和食谱。

首先,创建一个名为C:\chef的目录。

然后,创建另一个目录c:\chef\cookbooks

现在,我们需要下载Azure设置文件,以便Chef可以与我们的Azure订阅进行通信。

将发布设置文件保存到C:\chef中

在注册过程中,会要求你创建一个新组织。

在创建你的组织后,下载初学者工具包。

注意:如果你收到提示,警告你将重置你的密钥,可以继续操作,因为我们尚未配置现有基础结构。

此初学者工具包zip文件包含你的组织的配置文件和密钥。

将chef-starter.zip的内容提取到C:\chef

将chef-starter\chef-repo.chef下的所有文件都复制到c:\chef中

你的目录现在看起来应当与下图类似:

你现在应当有4个文件,包括位于根目录c:\chef中的Azure发布文件

PEM文件包含你的组织和用于通信的管理私钥,而knife.rb文件包含你的knife配置。你将需要编辑knife.rb文件。

在你选择的编辑器中打开该文件并修改“cookbook_path”:从路径中删除/../,使其如下所示:

cookbook_path["#{current_dir}/cookbooks"]另外,请添加以下行以反映你的Azure发布设置文件的名称。

knife[:azure_publish_settings_file]="yourfilename.publishsettings"你的knife.rb文件现在看起来应当如下所示:

这些行将确保Knife在执行Azure操作期间引用c:\chef\cookbooks下的cookbooks目录并且还使用我们的Azure发布设置文件。

接下来,下载并安装ChefDK(Chef开发工具包)来设置你的Chef工作站。

确认你的PATH变量包含以下条目:C:\opscode\chefdk\bin;C:\opscode\chefdk\embedded\bin;c:\users\yourusername.chefdk\gem\ruby\2.0.0\bin

如果未包含,请务必添加这些路径!

请注意,该路径的顺序非常重要!如果你的opscode路径未采用正确的顺序,你将会遇到问题。

在继续操作之前重新启动你的工作站。

接下来,我们将安装KnifeAzure扩展。这将为Knife提供“Azure插件”。

运行以下命令:

chefgeminstallknife-azure––pre注意:–pre参数确保你收到knifeazure插件的最新RC版本,该版本提供对最新API集的访问。

同时,可能还会安装许多依赖项。

若要确保所有项都已正确配置,请运行:

knifeazureimagelist如果所有项都已正确配置,你会看到可用Azure映像的列表滚动显示。

祝贺你。工作站已设置!

食谱由Chef用来定义你希望在托管客户端上执行的一组命令。创建食谱简单明了,我们将使用命令chefgeneratecookbook来生成我们的食谱模板。我将像自动部署IIS的策略一样调用我的食谱Web服务器。

在C:\Chef目录下运行以下命令:

chefgeneratecookbookwebserver这将在C:\Chef\cookbooks\webserver目录下生成一组文件。现在,我们需要定义我们希望Chef客户端在托管VM上执行的一组命令。

这些命令存储在文件default.rb中。在此文件中,我将定义一组命令来安装IIS、启动IIS并将模板文件复制到wwwroot文件夹中。

修改C:\chef\cookbooks\webserver\recipes\default.rb并添加以下行:

powershell_script'InstallIIS'doaction:runcode'add-windowsfeatureWeb-Server'endservice'w3svc'doaction[:enable,:start]endtemplate'c:\inetpub\wwwroot\Default.htm'dosource'Default.htm.erb'rights:read,'Everyone'end在完成后,保存该文件。

如上文提到的那样,我们需要生成一个模板文件,该文件将用作我们的default.html页面。

执行以下命令来生成模板:

chefgeneratetemplatewebserverDefault.htm现在导航到文件C:\chef\cookbooks\webserver\templates\default\Default.htm.erb并编辑该文件。

添加一些简单的“HelloWorld”html代码并保存该文件。

在此步骤中,我们将制作我们已在本地计算机上创建的食谱的副本并将其上载到Chef托管服务器。上载完成后,食谱将显示在“策略”选项卡下。

现在,我们将部署Azure虚拟机并应用“Webserver”食谱,该食谱将安装我们的IISWeb服务和默认网页。

若要执行此操作,请使用knifeazureservercreate命令。

下面是该命令的示例:

knifeazureservercreate--azure-dns-name'diegotest01'--azure-vm-name'testserver01'--azure-vm-size'Small'--azure-storage-account'portalvhdsxxxx'--bootstrap-protocol'cloud-api'--azure-source-image'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201411.01-en.us-127GB.vhd'--azure-service-location'ChinaNorth'--winrm-userazureuser--winrm-password'myPassword123'--tcp-endpoints80,3389--r'recipe[webserver]'各个参数不言自明。替换你的特定变量并运行。

注意:通过命令行,我还通过使用–tcp-endpoints参数自动执行终结点网络筛选器规则。我已打开端口80和3389来提供对我的网页和RDP会话的访问。

在运行该命令后,访问Azure经典管理门户,你会看到你的计算机已开始设置。

返回到命令提示符:

在部署完成后,我们应当能够通过端口80连接到web服务,因为我们在通过knifeazure命令设置VM时已打开了该端口。因为此VM是我的云服务中的唯一VM,所以我将使用云服务URL来连接它。

如你所见,我的html代码富有创造性:)

不要忘记,我们还可以从Azure经典管理门户使用端口3389通过RDP会话进行连接。

希望这对你有所帮助!现在就使用Azure开始你的基础结构即代码之旅吧!

THE END
1.RecipeApp一款基于Flutter的食谱应用UI模板recipeappRecipe App UI template using Flutter. 项目地址: https://gitcode.com/gh_mirrors/re/recipeapp 1. 项目基础介绍 RecipeApp 是一个使用 Flutter 编写的食谱应用 UI 模板。该项目旨在为开发者提供一个现成的应用界面框架,以便快速搭建具有吸引力的食谱应用。Flutter 作为 Google 开发的一种跨平台应用开发https://blog.csdn.net/gitblog_00672/article/details/144078015
2.每周食谱营养餐食快乐成长永康市职业技术学校第十周食谱https://mp.weixin.qq.com/s?__biz=MzIzMDQwNjk2MQ==&mid=2247503490&idx=1&sn=0f1182a4ab9accc6c80f33a163f18e46&chksm=e9fa1aa3c403a765d9f4e042ad3fd23738fe6cc822328a83ddb1777bdd2514f7e3e7b194ee31&scene=27
3.recipe图片免费下载recipe素材recipe模板千图网为您找到1266张recipe相关素材,千图网还提供recipe图片,recipe素材, recipe模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/recipe.html
4.食谱设计在线食谱制作食谱图片模板在线设计平台Canva可画提供了海量的食谱设计模板,覆盖绝大多数食谱设计场景,只需选择喜欢的模板进行制作,即可轻松在线设计出精美的食谱。https://www.canva.cn/create/recipe/
5.图像的食谱(recipeImage)图片png成套合集游戏爱给网提供海量的合集成套资源素材免费下载, 本次作品为png 格式的图像的食谱(recipeImage), 本站编号32953257, 该合集成套素材大小为161b, 分辨率为37 x 35, 作者为lescarlson, 更多精彩合集成套素材,尽在爱给网。 找到更多"游戏2d素材/合集成套/图像的食谱"资源搜索更多 https://www.aigei.com/item/ui_storefront_0_39.html
6.recipe模板为啥要同时使用xsd和xml文件,xml和xsd文件区别?在使用recipe模板中,XSD文件定义了模板中应该包含哪些元素、属性、命名空间等,而XML文件则是使用XSD文件定义的结构来描述具体的食谱。XML文件可以包含一到多个食谱,每个食谱都包含名称、配料、指导等元素和属性。 综上所述,recipe模板同时使用XSD和XML文件来定义和序列化XML文档的结构和内容,并使编写XML文档更加简单、清https://m.sohu.com/a/715489420_121124363
7.每周食谱秋冬饮食教育校园幼儿园清新可爱黄色模板相关标签: 简约 黄色 GIF动图 卡通/漫画 可爱 清新 菜谱食谱 动态 食谱推荐 每周食谱 作品简介 135编辑器提供的每周食谱秋冬饮食、教育校园幼儿园、清新可爱、黄色模板模板样式,此作品素材ID:151096,该素材可用于:简约、黄色、GIF动图、卡通/漫画、可爱、清新、菜谱食谱、动态、食谱推荐、每周食谱相关的微信公众号http://www.135plat.com/editor_styles/151096.html
8.Steaks&Chops餐饮降食谱HTML模板Steaks&Chops是一款功能齐全,功能丰富且设计精美的Bootstrap 4主题,适用于食谱相关网站,这个主题非常适合专业厨师和烹饪专家,Food Recipe Bootstrap 4主题通过完整的信息和视频支持,可以轻松分享烹饪知识。https://www.22vd.com/45668.html
9.Cookiteerv1.4.8–食物和食谱WordPress主题Cookiteer – 食物和食谱 WordPress 主题。 Cookiteer 是一个干净、优质和现代的 WordPress 主题,可用于为多种场景创建任何网站。 Cookiteer 可用于的一些模板包括:美食博客、餐厅网站、食谱教程等等 Cookiteer 具有创建令人惊叹的网站所需的所有功能。 这个主题几乎可以响应任何屏幕尺寸,这样您就可以减少对界面的担忧,https://themez.cc/3315.html
10.幼儿园本周食谱公布可爱绿色模板公众号模板幼儿园本周食谱公布可爱绿色模板每周食谱WEEKLY RECIPE 宝贝饮食,健康成长不容忽视。饮食是宝贝健康成长的重要因素,良好的饮食习惯可以帮助宝贝获得足够的营养和能量,促进身体发育和智力发展。 MONDAY·周一 早餐Breakfast火龙果、红枣糯米粥 午餐Lunch 冬瓜粉丝汤、虾仁日本豆腐、玉米排骨汤,娃娃菜烩虾仁、米饭、松仁鸡肉丸https://www.135editor.com/editor_styles/140914.html
11.MyRecipesSaveandorganizetheworld’sbestrecipesEasily find, save, and organize the world’s best recipes with MyRecipes. Use top food sites like Food & Wine and EatingWell to create a new recipe home.http://www.myrecipes.com/
12.Save,Publish&ShareRecipeswithHomeCooksWorldwideShow your appreciation to recipe writers with Cooksnaps. Let them know their recipe work for you. Download About Us Our mission at Cookpad is to make everyday cooking fun, because we believe that cooking is key to a happier and healthier life for people, communities and the planet. We https://cookpad.com/
13.食谱照片设计师–remove.bg通过直观的界面,我们的食谱照片设计师可以使您的菜品脱颖而出。 使用我们的模板,可以在几秒钟内创建出奇妙的食物图片。https://www.remove.bg/zh/t/recipe-photo-designer
14.免费食谱Logo设计DesignEvoLogo制作软件DesignEvo的在线食谱logo设计软件提供了很多精致的模板,帮助你轻松制作出令人惊叹的食谱logo。我们所有的模板都是专业设计且可自由定制的。你随时可以使用我们精美的模板,丰富的图标和形状等为餐厅饭店、食疗中心、养生会所等设计一个专业的食谱logo。即使你对设计一无所知也没关系,我们将竭诚为你服务,赶快来试试吧!http://www.designevo.com/cn/create/logos/recipe.html
15.菜谱画册相关文章列表极简食品食谱菜单杂志设计INDD画册模版素材 Affilie Food Recipe Cookbook 画册模板 4年前 24页食品美食食谱画册排版设计INDD模板素材 Piebble Food Recipe Cookbook 画册模板 4年前 时尚简约食品菜品食谱宣传手册设计INDD模板 FOODIES Cookbook & Food Recipe https://zaodao.net/tag/5045
16.下厨房破壁机养生食谱 Timmy么血14 做过 自制饮品、奶茶~杨枝甘露 洋yang吖0 做过 粉丝炒包菜 基本告别外卖的girl90 做过 清蒸山药肉丸(宝宝辅食) ☆簧尐袼☆13 做过 蒜香鸡翅|孩子们的最爱 古典美人美食739 做过 时令食材 全部 萝卜 南瓜 红薯 白菜 https://www.xiachufang.com/
17.Cook'sIllustratedRecipesThatWorkWeTestItAllWe explore the science behind what makes a recipe tick. We ask questions, conduct experiments, and get answers—delicious answers that you won't find anywhere else. Join Us in the Lab Good sciencemakes great food We believe that a little science goes a long way to helping you understand whhttp://www.cooksillustrated.com/
18.AmazonIoTGreengrass组件配方参考查看食谱格式,确认您没有遗漏任何字段。 食谱格式 在为组件定义配方时,需要在配方文档中指定以下信息。同样的结构适用于YAML和JSON格式的食谱。 RecipeFormatVersion 食谱的模板版本。选择以下选项: 2020-01-25 ComponentName 此配方定义的组件的名称。在每个区域中,组件名称必须是唯一的 Amazon Web Services 账户 。https://docs.amazonaws.cn/greengrass/v2/developerguide/component-recipe-reference.html
19.有道词典Listing 11 shows the recipe template with the addition of a link_to_remote helper method call. 清单11中的菜单模板增加了link _ to _ remote辅助方法调用。 6. 42kb And I did tweak the method a wee bit: the recipe card included suggests an all-in-one method, while I prefer to cream https://m.youdao.com/singledict?q=method-recipe:&dict=blng_sents&more=true