我有一本剧本,用于安装IIS,配置apppools,网站和部署应用程序。现在我有一个独特的要求。从某种意义上说,它是独一无二的,我仍然对如何做到这一点一无所知:-)。要求是将回收团队设置为在4台服务器的群集中间隔15分钟。即第一台服务器的回收时间为10:00 PM,第二台服务器的回收时间为10:15 PM,依此类推...
关于如何实现的任何指针...
我已经使用以下设置设置了应用程序池
- 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:00 PM,第二台服务器上的10:15 PM,第三台服务器上的10:30 PM等...
答案 0 :(得分:0)
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”部分中了解更多信息。