【问题标题】:Struggling to switch to root user with Ansible努力使用 Ansible 切换到 root 用户
【发布时间】:2019-07-07 10:54:16
【问题描述】:

我是 Ansible 的初学者,我需要在远程服务器上运行一些基本任务。

程序如下:

  • 我以某个用户 (osadmin) 身份登录
  • 我运行su - 成为root
  • 然后我会做我需要做的任务。

所以,我的剧本如下:

---
- name: Some tasks
  become: yes
  become_user: root
  # become_method: su // Also tried with that.
  template: src=repo.j2 dest=/etc/yum.repos.d/test.repo owner=root group=root
  register: copy

另外,我在vars/main.yml 中有以下内容:

ansible_user: osadmin
ansible_password: password1
ansible_become_password: password2
[ some other values ]

但是,在运行我的任务时,Ansible / 主机会返回以下内容:

“sudo 密码错误”

虽然我确定我给了它正确的密码。所以,我想我没有正确地这样做。

通过su 切换到root 的正确方法是什么?

提前谢谢你

【问题讨论】:

  • 要成为root用户,您需要提供root用户的密码,这不是最好的选择。相反,如果他具有 root 权限,您可以使用您的 osadmin 用户。
  • root的密码是ansible_become_password提供的,但不知怎么的说密码不好
  • 无论如何,如果您有 root 权限,推荐的方法是在机器上使用您的用户,这样您就可以一起省略 become_user
  • 我尝试登录的用户没有 root 权限,但可以通过 su - 以 root 身份“登录”。我看到了推荐的方式,但不知何故 Ansible 不允许我这样做..
  • @Jaeger 能否提供文件夹结构?

标签: ansible


【解决方案1】:

根据您的问题,我看到变量值存储在vars/main.yml 中。而是将变量放在 group_vars/all.yml 中并取消注释 # become_method: su

修改后的代码

---
- name: Some tasks
  become: yes
  become_user: root
  become_method: su // Also tried with that.
  template: src=repo.j2 dest=/etc/yum.repos.d/test.repo owner=root group=root
  register: copy

group_vars/all.yml中有变量

ansible_user: osadmin
ansible_password: password1
ansible_become_password: password2
[ some other values ]

我试过了,它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2022-01-08
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多