Ansible

Ansible:Pbru 無法執行

  • September 23, 2021

我有以下庫存文件

[server]
abc.com
[server:vars]
ansible_user="user1"
ansible_ssh_pass="pwd"
ansible_pbrun_exe="pbrun"
ansible_pbrun_password="pqa"
ansible_pbrun_user="root"

和劇本文件

---
- name: Upgrade Java Version to all the hosts
 hosts: all
 tasks:
   - name: run simple command
     shell: java -version 2>&1 | grep version | awk '{print $3}' | sed 's/"//g'
     register: javav
     
   - name: remove the currently installed java
     become: true
     become_method: "pbrun"
     shell: |
       mv /usr/bin/java  ~/bckup_java_exe
       mv /usr/java/ ~/bckup_java

現在,當我執行 ansible playbook 時,它連接到 ssh 主機並且也能夠java -version ..成功執行命令,但無法根據mv需要執行命令pbrun

當我become: true從劇本中刪除時,它顯示權限錯誤

: Permission denied", “mv: cannot move `/usr/java/’ to


```

當我不刪除`become: true`它時,它會給出一些其他錯誤,並且它也不起作用

我找到的解決方案如下

 become: "yes"
 become_method: "pbrun"
 become_user: "root"
 become_flags: "sa"

當我們執行 pbrun sa -u root

也不要忘記設置ansible_become_pass到庫存文件或--ask-become-pass

謝謝

我沒有看到你在become_method: pbrun任何地方設置。這是必需的。

引用自:https://serverfault.com/questions/1078299