首页 > 解决方案 > Ansible : Ansible SSH 登录后切换用户两次

问题描述

我正在使用 Ansible 安装 Oracle。我需要切换到应用程序用户(orauser)。当我在 Linux 终端上手动执行相同操作时,我按顺序执行以下步骤:

  1. 我必须使用我的用户作为 SSH 用户登录到虚拟机/服务器。
  2. 输入命令“ pbrun su - root
  3. 输入命令“ pbrun su - orauser ”或“ su - orauser

我必须按照上述 3 个步骤进行操作,因为我的用户 ID 没有直接切换到应用程序用户 ( orauser ) 的权限,而我首先需要切换到 root 用户。这意味着我需要切换用户 2 次。

我尝试在 Ansible 中实现上述 Linux 步骤,如下所示

  1. Ansible login using ansible_user=<my_vm_user_id>at ansible invocation => 上述 Linux 步骤的第 1 步 - 使用 SSH_USER 登录
  2. become_user = root在剧本级别使用become_method = pbrun=> 上述 Linux 步骤的第 2 步 - 切换到 root 用户
  3. become_user = orauser在任务/角色级别使用become_method = pbrun=> 上述 Linux 步骤的第 2 步 - 切换到应用程序用户(orauser

但是,它失败并出现以下错误:

can not switch user to orauser. 
 pbrun10.3.0-16[25697] request rejected by pbmasterd on <server>

后来我才知道,Ansible 不能为给定的任务或角色切换用户两次。我想确认以下几点:

  1. 我的理解是正确的。
  2. 使用 Ansible 功能的替代解决方案是什么。

注意:我们可以使用 shell/command 模块在命令级别运行安装,su -c 'shell_command*'但是我们需要将 Ansible 任务转换为 shell 脚本,这不是首选方式。

标签: ansiblesuswitch-userpbrun

解决方案


推荐阅读