首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ansible管理ESXI清单

使用Ansible管理ESXI清单
EN

Stack Overflow用户
提问于 2021-05-11 10:12:08
回答 1查看 62关注 0票数 0

我正在尝试使用Ansible修改一组ESXI服务器上的DNS设置。我已经能够让我的攻略更改单个服务器上的设置,如下所示:

代码语言:javascript
复制
--- 
- hosts: localhost
  tasks:
  - name: Configure ESXi hostname and DNS servers
    vmware_dns_config:
      hostname: 'myesxiserver.domain.local'
      username: 'username'
      password: 'password'
      dns_servers:
          - x.x.x.x
          - x.x.x.x
    delegate_to: localhost

我如何让它在多台服务器上工作?Ansible文档提供了以下示例:

代码语言:javascript
复制
---
- hosts: localhost
  tasks:
  - name: Configure ESXi hostname and DNS servers
    vmware_dns_config:
      hostname: '{{ esxi_hostname }}'
      username: '{{ esxi_username }}'
      password: '{{ esxi_password }}'
      change_hostname_to: esx01
      domainname: foo.org
      dns_servers:
        - 8.8.8.8
        - 8.8.4.4
  delegate_to: localhost

我不清楚如何遍历主机列表并将正确的值传递到我的每台服务器的变量'{{ esxi_hostname }}‘中。我假设可以使用清单文件传递变量,但我还没有找到任何关于如何为ESXI服务器这样做的好例子。

EN

回答 1

Stack Overflow用户

发布于 2021-05-21 02:31:06

所以我把它弄好了。

代码语言:javascript
复制
---
- hosts: localhost
  vars_files:
    - vars.yml
    - vars2.yml

  tasks:
  - name: Configure ESXi hostname and DNS servers
    vmware_dns_config:
      hostname: "{{ item }}"
      username: 'myadmin'
      password: "{{ Password }}"
      validate_certs: no
      change_hostname_to:  "{{ item }}" 
      domainname: foo.org
      dns_servers:
          - x.x.x.x
          - x.x.x.x
    delegate_to: localhost
    loop: "{{ esxihost }}"

我必须使用vars_file传递主机名列表,并使用循环关键字对其进行迭代。我尝试将{{inventory_hostname}}变量与一个标准清单文件一起使用,但是因为在ESXi服务器上通常没有默认启用SSH,所以我会得到一个SSH连接错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67479694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档