
以下の在庫ファイルがあります
[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 ..
実行することはできません。mv
pbrun
プレイブックから削除すると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
ありがとう