我正在使用ansible和openstack创建Windows实例。
我的脚本如下:
名称: 主机:localhost#(ansible控制器) var_files: ... vars: server_name:winServer1 任务:
名称:“获取实例密码” 外壳:nova get-password winServer1 ./myKey.pem 重试:70 延迟:5 注册:通过 直到:pass.stdout |长度> 2
名称:切换到Windows主机 主机:winServer1 vars: ansible_user:管理员 ansible_password:“ hostvars ['localhost'] ['pass']” ansible_connection:winrm .....
基本上,代码创建一个实例并获取其密码,然后继续在新创建的服务器上运行任务。
这可行,但是我尝试在多台服务器上执行此操作,但遇到了问题。注册仅适用于静态名称,因此您无法注册“ pass {{item}}”。但是,假设我将密码以哈希表的形式写到文件中,或者以主机名和密码作为密码。 如何遍历它并同时在所有任务上运行任务?我的意思是,您可以同时在两个服务器上运行servername1,servername2,但是连接它们的方式必须相同,并且与Linux实例具有相同的密钥,Windows实例已经生成了密码,但我不知道使用多个密码的方法这样的密码,这是我的问题。
如何对运行相同任务的多个Windows实例使用多个密码?