首页 文章

Ansible:play_file中的remote_user问题

提问于
浏览
0

实际上我已经为每个主机组定义了remote_user变量 . 但是remote_user值不是从已定义的值中获取的 . 而是使用最高指定值 .

Ansible版本:

# ansible --version
ansible 2.3.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.12 (default, Jul  1 2016, 15:12:24) [GCC 5.4.0 20160609]

Playbook文件:info.yml

---
- hosts: all
  remote_user: demo 
  roles:
  - common

- hosts: devlocal
  remote_user: root
  become: yes
  roles:
  - common

- hosts: testlocal
  remote_user: test
  become: yes
  roles:
  - common

当我为主机[devlocal]运行剧本时,用户名取自第一个作业[即:“demo”] . 实际上它应该在我的情况下使用remote_user“root” .

日志:

# ansible-playbook  -i hosts -l devlocal info.yml  --ask-pass -vvvv
Using /etc/ansible/ansible.cfg as config file
SSH password: 
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: site.yml ********************************************************************************************************************************
3 plays in site.yml

PLAY [all] ****************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/setup.py
<10.11.12.213> ESTABLISH SSH CONNECTION FOR USER: demo

有人请帮助解决这里的问题 . 提前致谢

2 回答

  • 0

    有人请帮助解决这里的问题 .

    这里的问题是你指定第一个播放为 demo

    - hosts: all
      remote_user: demo 
      roles:
      - common
    

    并且Ansible将其视为 demo ,这似乎不是您的目标 .

    这就是Ansible提供inventory mechanism的原因,因此您可以指定每个主机的连接详细信息,而不是播放 .

  • 0

    我已为每个主机组定义了remote_user变量

    错误 . 您已为每个游戏定义 remote_user 而不是主机组 .
    主机和组通过库存定义 .
    因此,您应该使用 ansible_user 分配 devlocaltestlocal 组 .

    单打:

    - hosts: all
      roles:
      - common
    

相关问题