Ansible: Pbrun을 실행할 수 없습니다.

Ansible: Pbrun을 실행할 수 없습니다.

아래 인벤토리 파일이 있습니다.

[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 플레이북을 실행하면 ssh 호스트에 연결되고 명령을 성공적으로 실행할 수 있지만 필요에 따라 명령 java -version ..을 실행할 수 없습니다 .mvpbrun

플레이북에서 제거하면 become: true권한 오류가 표시됩니다.

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

제거하지 않으면 become: true다른 오류가 발생하고 작동하지 않습니다.

답변1

become_method: pbrun나는 당신이 어디에도 설정하지 않은 것을 볼 수 있습니다 . 이는 필수입니다.

답변2

내가 찾은 해결책은 아래와 같습니다

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

pbrun sa -u root를 실행했을 때

ansible_become_pass또한 재고 파일에 설정하는 것을 잊지 마십시오 .--ask-become-pass

감사해요

관련 정보