标签:pp IIS iis PuppetIisDemo 配置 puppet 服务端 客户端
先简单介绍下puppet,puppet是一个基于ruby的开源的运维自动化管理工具,在linux平台应用广泛。它的部署方式为c/s,需要在服务器端和客户端分别安装对应的程序。该工具的支持公司也推出了企业版puppet(10个节点下免费),puppet在2.6版本后开始支持windows客户端,注意服务端还只能安装在linux平台下,你可以点这里下载对应的版本。
如果你还没用过puppet,可以点这里了解如何安装和配置服务器端和客户端。
好了,切入正题,puppet管理IIS需要用到一个插件:simondean-iis,详情,在服务端可以通过下面的命令来安装该插件
puppet module install simondean-iis
安装完成后在服务端puppet/modules下会多出一个名称为iis的文件夹,该模块会在部署IIS的时候同步到windows客户端。
现在介绍下simondean-iis,它其实是通过调用appcmd来实现iis配置,看下他的对象和属性:
iis_apppool:这是建立应用程序池的对象
iis_site:这是建立站点的对象
iis_vdir:这是建立虚拟目录的对象
iis_app:这是建立应出程序的对象
每个对象的属性可以参看simondean-iis的详情页。
下面给出简单的示例,我们在服务端的puppet/manifests/目录下建立个iis_example.pp,内容如下
file {'c:/puppet_iis_demo': ensure => directory, } file {'c:/puppet_iis_demo/default.aspx': content => '<%@ Page Language="C#" %> <!DOCTYPE html> <html> <head> <title>Managed by Puppet</title> </head> <body> <h1>Managed by Puppet</h1> <strong>Time:</strong> <%= DateTime.UtcNow.ToString("s") + "Z" %> </body> </html>' } iis_apppool {'PuppetIisDemo': ensure => present, managedpipelinemode => 'Integrated', managedruntimeversion => 'v2.0', } iis_site {'PuppetIisDemo': ensure => present, bindings => ["http/*:25999:"], } iis_app {'PuppetIisDemo/': ensure => present, applicationpool => 'PuppetIisDemo', } iis_vdir {'PuppetIisDemo/': ensure => present, iis_app => 'PuppetIisDemo/', physicalpath => 'c:\puppet_iis_demo' }
pp文件是puppet的配置说明文件,puppet会将这些配置文件分发到相应的客户端,上面的文件创建文成后,我们在manifests/site.pp,文件中增加一行
import "iis_example.pp"
这样在puppet客户端同步服务端配置的时候,首先将simondean-iis模块同步下来,如果客户端以前已经同步,第二次将不会再同步,然后获取要应用客户端的配置,在这里即iis_example.pp文件的信息,之后应用这些配置信息。最终你会发现在IIS管理器上网站和应用程序中新增了一个站点puppetiisdemo。上面的配置中各属性跟iis相应的对象是对应的,很好理解,这里需要另外说下,我们在通过GUI界面建立站点的时候,并不需要建立应用程序和虚拟目录,但是这个插件实现上是需要我们单独来配置,也就是iis_vdir绑定到iis_app,iis_app绑定到iis_site.pp。我想在用界面建立站点的时候实际上也是这样的步骤,只是把步骤封装在一个操作里了。
转载于:https://www.cnblogs.com/waiwofei/p/3678173.html
标签:pp,IIS,iis,PuppetIisDemo,配置,puppet,服务端,客户端 来源: https://blog.csdn.net/weixin_33969116/article/details/94314300
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。