我有一个安装IIS,配置apppools,网站和部署应用程序的playbook。现在我有一个独特的要求。在这个意义上是独一无二的,我仍然对如何做到这一点毫无头绪:-)。要求是在4台服务器的集群中将回收团队设置为15分钟。即第一台服务器的回收时间为晚上10点,第二台时间为晚上10:15,等等......
有关如何实现它的任何指示......
我已经使用以下设置设置了应用程序池
- name: Setup TestWorkerApi Apppool in IIS
win_iis_webapppool:
name: TestWorkerApi
state: started
attributes:
managedPipelineMode: Integrated
startMode: AlwaysRunning
processModel.identityType: SpecificUser
processModel.userName: '{{ Domain }}\{{ Test_In_User }}'
processModel.password: "{{ Test_In_Pwd }}"
managedRuntimeVersion: v4.0
processModel.idleTimeout: 0
processModel.idleTimeoutAction: Suspend
recycling.periodicRestart.schedule: ["22:00:00"]
autoStart: yes
register: apppool_output-TestWorkerApi
tags:
- TestApp
我正在寻找应用程序池回收时间为第一台服务器上午10点,第二台服务器上午10点15分,第三台服务器等下午10点半...
Ansible允许您设置特定于主机的变量......
(a)在您的库存中,以及(b)在host_vars
目录中的变量文件中。
在任何一种情况下,您都可以为每个主机设置一个具有所需值的recycle_time
变量。例如,使用旧版库存格式,可能如下所示:
server1 recycle_time=22:00:00
server2 recycle_time=22:15:00
server3 recycle_time=22:30:00
server4 recycle_time=22:45:00
或使用YAML库存格式:
all:
hosts:
server1:
recycle_time: "22:00:00"
server2:
recycle_time: "22:15:00"
server3:
recycle_time: "22:30:00"
server4:
recycle_time: "22:45:00"
或者使用host_vars
目录,您将使用以下内容创建host_vars/server1.yml
:
recycle_time: "22:00:00"
......和其他服务器类似。
无论如何,你会在你的剧本中引用recycle_time
变量:
- name: Setup TestWorkerApi Apppool in IIS
win_iis_webapppool:
name: TestWorkerApi
state: started
attributes:
managedPipelineMode: Integrated
startMode: AlwaysRunning
processModel.identityType: SpecificUser
processModel.userName: '{{ Domain }}\{{ Test_In_User }}'
processModel.password: "{{ Test_In_Pwd }}"
managedRuntimeVersion: v4.0
processModel.idleTimeout: 0
processModel.idleTimeoutAction: Suspend
recycling.periodicRestart.schedule: [{{ recycle_time }}]
autoStart: yes
register: apppool_output-TestWorkerApi
tags:
- TestApp
您可以在Ansible文档的“Variables”部分阅读更多内容。