Andrés Sánchez García Asked: 2013-06-01 00:47:49 +0800 CST2013-06-01 00:47:49 +0800 CST 2013-06-01 00:47:49 +0800 CST ansible playbook,操作系统不同的用户 772 我开始玩ansible了。我有一堆服务器(Ubuntu、Centos、Red hat...)。 服务器有不同的用户。对于 ubuntu 服务器,我使用 sudo 用户,其余的我使用 root 用户。 我如何通过操作系统指定用户? ansible 3 个回答 Voted Best Answer dgh 2013-08-12T16:56:55+08:002013-08-12T16:56:55+08:00 文档提到仅针对特定操作系统执行任务。您可以调整它来为每个操作系统设置用户。例如 - hosts: CentOS user: centos tasks: - # some tasks - hosts: Debian user: default - # some tasks - hosts: Ubuntu user: ubuntu - # some tasks 在源代码中,似乎支持这些操作系统,但在撰写本文时我无法在官方文档中证实这一点。 红色的帽子 软呢帽 中央操作系统 科学的 单片机 登高士 云端Linux PSBM 甲骨文Linux OVS OEL 亚马逊 Xen服务器 Ubuntu 德比安 SLES 雪橇 OpenSuSE 苏SE Gentoo 架构Linux 曼德里瓦 曼德拉草 索拉里斯 尼克森塔 OmniOS 打开印第安纳州 智能操作系统 您还可以在文件中定义每个操作系统的变量,并使用此处所示vars/<os-name>.yaml的模板变量有条件地使用它们。ansible_os_family Rémy 2013-10-24T07:54:49+08:002013-10-24T07:54:49+08:00 CentOS 等不是自动的。这是一组基于 ansible 提供的变量。这是一个完整的例子,处理 CentOS 加 VM 或不加 VM。 --- - name: RG Ansible for ALL hosts: all tasks: - name: group by OS versions group_by: key="{{ ansible_distribution }}_{{ ansible_distribution_version.split('.')[0] }}" - name: group by physical/virtual machine group_by: key="{{ ansible_virtualization_role }}" ... - name: RG Ansible for CentOS 6 hosts: CentOS_6 gather_facts: false tasks: ... - name: RG Ansible for CentOS 5 hosts: CentOS_5 gather_facts: false tasks: - name: RG Ansible for VM hosts: guest gather_facts: false tasks: - service: name=acpid state=stopped enabled=no - service: name=cpuspeed state=stopped enabled=no dawud 2013-06-01T01:03:27+08:002013-06-01T01:03:27+08:00 在命令行指定用户: ansible-playbook foo.yml --extra-vars "user=bar" ----- - user: '{{ user }}' user 为每个主机组指定一个不同的/etc/ansible/hosts [targets] localhost ansible_connection=local other1.example.com ansible_connection=ssh ansible_ssh_user=mpdehaan other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan
文档提到仅针对特定操作系统执行任务。您可以调整它来为每个操作系统设置用户。例如
在源代码中,似乎支持这些操作系统,但在撰写本文时我无法在官方文档中证实这一点。
您还可以在文件中定义每个操作系统的变量,并使用此处所示
vars/<os-name>.yaml
的模板变量有条件地使用它们。ansible_os_family
CentOS 等不是自动的。这是一组基于 ansible 提供的变量。这是一个完整的例子,处理 CentOS 加 VM 或不加 VM。
在命令行指定用户:
user
为每个主机组指定一个不同的/etc/ansible/hosts