ansible初心者です。
ansible playbookの書き方について質問させてください。
ansibleを使ってLinux用商用パッケージソフトを自動インストールするplaybook作成しようとしています。
パッケージソフトインストール時に「使用許諾契約書」メッセージなど
キーボードで応答が必要です。
このキーボートでの応答を自動化する書き方をアドバイスいただけませんでしょうか。
具体的には以下の通りです。
1 パッケージファイルのアップロード
rpm -ivh esets-4.0.8.x86_64.rpm
2 インストール実行
sh /tmp/esets-4.0.8.x84_64.rpm.bin
ここで、インストールしたいLinux用商用パッケージソフトは、使用許諾契約書」が画面メッセージが表示されます。
[Enter]キーを押す。
Do you accept this Agreement? (y/n) [y]キーを押す
のちインストール完了
この手動で応答する必要のある画面操作部分も自動化するための ansible playbook の
書き方を教えていただけませんでしょうか。
(2016/08/27追記)
コメントありがとうございました。
expectの使い方を理解しきてなくて、現在の詰まっている状況を追加で質問させてもらいました。。
アドバイス、ヒントなどいただけるとありがたいです!
ansible-playbook実行時のエラーメッセージです。
fatal: [192.168.33.27]: FAILED! => {"changed": true, "cmd": ["sh", "/tmp/esets.x86_64.rpm.bin"], "delta": "0:00:00.009306", "end": "2016-08-27 10:56:13.881411", "failed": true, "rc": 1, "start": "2016-08-27 10:56:13.872105", "stderr": "", "stdout": "This is ESET Security distribution script. Press Enter to show the Licence...\n(press q after you have read the License to continue extraction)", "stdout_lines": ["This is ESET Security distribution script. Press Enter to show the Licence...", "(press q after you have read the License to continue extraction)"], "warnings": []}
コマンド実行時の状況 $ ansible-playbook -i hosts eset_install.yml [DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and make sure become_method is 'sudo' (default). This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. PLAY [test-svr] **************************************************************** TASK [setup] ******************************************************************* ok: [192.168.33.27] TASK [glibc.i686 install] ****************************************************** ok: [192.168.33.27] TASK [Install libselinux-python] *********************************************** ok: [192.168.33.27] TASK [Check status of selinux] ************************************************* changed: [192.168.33.27] TASK [ESET installser upload to server] **************************************** ok: [192.168.33.27] TASK [ESET nod32.inc LisenceFile upload to server] ***************************** ok: [192.168.33.27] TASK [Run ESET install shell] ************************************************** fatal: [192.168.33.27]: FAILED! => {"changed": true, "cmd": ["sh", "/tmp/esets.x86_64.rpm.bin"], "delta": "0:00:00.009306", "end": "2016-08-27 10:56:13.881411", "failed": true, "rc": 1, "start": "2016-08-27 10:56:13.872105", "stderr": "", "stdout": "This is ESET Security distribution script. Press Enter to show the Licence...\n(press q after you have read the License to continue extraction)", "stdout_lines": ["This is ESET Security distribution script. Press Enter to show the Licence...", "(press q after you have read the License to continue extraction)"], "warnings": []} NO MORE HOSTS LEFT ************************************************************* [WARNING]: Could not create retry file 'eset_install.retry'. [Errno 2] No such file or directory: '' PLAY RECAP ********************************************************************* 192.168.33.27 : ok=6 changed=1 unreachable=0 failed=1 $
ansible-playbookの内容
--- - hosts: test-svr sudo: yes tasks: - name: glibc.i686 install yum: name=glibc.i686 state=latest - name: Install libselinux-python yum: name=libselinux-python state=present - name: Check status of selinux shell: getenforce - name: ESET installser upload to server copy: src=/home/ansible/files/installer/esets.x86_64.rpm.bin dest=/tmp/esets.x86_64.rpm.bin mode=755 - name: ESET nod32.inc LisenceFile upload to server copy: src=/home/ansible/files/installer/nod32.lic dest=/tmp/nod32.lic - name: Run ESET install shell command: sh /tmp/esets.x86_64.rpm.bin
何卒宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/23 05:48
2016/08/27 06:45