ディレクトリのみを変更するシェルスクリプトがあります(ディレクトリパスはここにあります)。
シェルファイル
#!/bin/bash
p="dir/file/create"
cd "$p"
exec bash
アンサーブルマニュアル
---
- hosts: localhost
gather_facts: true
become: true
become_user: oracle
become_flags: 'content-ansible'
tasks:
- name: changing dir now..
command: sh /dir/file/create/vars.sh
ANSIBLEでディレクトリパスを変更するためにシェルスクリプトを実行し、ディレクトリから後続のシェルファイル(#2)を実行したい(再度シェルスクリプト)。
Ansible PlayBookが完了しましたが、ディレクトリに入ってシェルスクリプトを実行できません(#2)。
答え1
答え2
スクリプトにフルパスを入力する必要があります。
#!/bin/bash
p="/dir/file/create"
cd "$p"
COMMANDモジュールの前にshを使用しないでください。
- name: changing dir now..
command: /dir/file/create/vars.sh
ただし、問題の場合、「シェル」モジュールは「コマンド」モジュールよりも優れています。
答え3
このオプションを試してみましたが、大丈夫だと思います。
pre_tasks:
- include_vars: vars.yml
tasks:
- name: Do task...
shell: cd "{{v_dir}}" && sh shell2.sh