
Eu tenho o arquivo de inventário abaixo
[server]
abc.com
[server:vars]
ansible_user="user1"
ansible_ssh_pass="pwd"
ansible_pbrun_exe="pbrun"
ansible_pbrun_password="pqa"
ansible_pbrun_user="root"
e o arquivo do manual
---
- 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
Agora, quando executo o playbook ansible, ele se conecta ao host ssh e também é capaz de executar o java -version ..
comando com êxito, mas não consegue executar o mv
comando conforme necessáriopbrun
quando eu removo become: true
do playbook ele mostra erro de permissão
```
: Permission denied", "mv: cannot move `/usr/java/' to
````
E quando não removo become: true
dá algum outro erro, e também não está funcionando
Responder1
Não vejo que você tenha definido become_method: pbrun
nenhum lugar. Isto é necessário.
Responder2
A solução que encontrei está abaixo
become: "yes"
become_method: "pbrun"
become_user: "root"
become_flags: "sa"
enquanto rodamos pbrun sa -u root
também não se esqueça de definir ansible_become_pass
no arquivo de inventário ou--ask-become-pass
obrigado