Ansible: Pbrun kann nicht ausgeführt werden

Ansible: Pbrun kann nicht ausgeführt werden

Ich habe die folgende Inventardatei

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

und die Playbook-Datei

---
- 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

Wenn ich jetzt das Ansible-Playbook ausführe, stellt es eine Verbindung zum SSH-Host her und kann den java -version ..Befehl auch erfolgreich ausführen, jedoch nicht mvwie erforderlich.pbrun

wenn ich es become: trueaus dem Playbook entferne, wird ein Berechtigungsfehler angezeigt

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

Und wenn ich es nicht entferne, become: truegibt es einen anderen Fehler und es funktioniert auch nicht

Antwort1

Ich sehe nicht, dass Sie das become_method: pbrunirgendwo eingestellt haben. Dies ist erforderlich.

Antwort2

Die Lösung, die ich gefunden habe, ist unten

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

als wir pbrun sa -u root ausführten

ansible_become_passVergessen Sie auch nicht , in die Inventardatei einzutragen oder--ask-become-pass

Danke

verwandte Informationen