如何为同一变量的多个服务器提供不同的值

问题描述 投票:1回答:1

我有一个安装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
1个回答
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”部分阅读更多内容。

© www.soinside.com 2019 - 2024. All rights reserved.