如何在具有不同用户的不同服务器上运行命令

时间:2019-08-19 00:10:08

标签: ansible

我必须检查数据库的状态,该数据库在许多使用不同用户ID的服务器上运行,例如:在server1上,它与user1一起运行在server2上,并与user2等运行。在我的剧本中,我有检查数据库的代码状态,但不知道如何在不同的主机和不同的用户ID上运行它。

我写了一部剧本,可以检查数据库状态,但不知道如何在不同服务器上使用不同的用户ID来运行它。

剧本:

---
- hosts: all
  become: true
  become_user: db2inst1
  tasks:
   - name: Start DB2
     command: /home/db2inst1/sqllib/adm/db2_ps

库存:

[db-servers]
192.168.4.30

1 个答案:

答案 0 :(得分:0)

您应该看一下Ansible Docs的"Connecting to hosts: behavioral inventory parameters"部分。它说明了您可以设置的所有变量,以修改每台主机上的Ansible行为。

在您的情况下,您将必须定义要在每个ansible_user上使用的host变量,以及相应的身份验证详细信息(密码,ssh密钥等)

您可以在清单文件中配置这些变量。例如,假设您需要将用户root用于某台服务器,并将ubuntu用于另一台服务器。您可以像这样配置playbook

[db-servers]
192.168.4.30 ansible_user=root
192.178.4.31 ansible_user=ubuntu

希望对您有帮助。