디렉토리만 변경하는 쉘 스크립트가 있습니다(디렉토리 경로는 여기에 제공됩니다).
쉘 파일
#!/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 플레이북이 완료되었지만 디렉터리에 들어가 쉘 스크립트를 실행할 수 없습니다(#2).
답변1
답변2
스크립트에 전체 경로를 입력해야 합니다.
#!/bin/bash
p="/dir/file/create"
cd "$p"
COMMAND 모듈 앞에 sh를 사용하지 마십시오:
- name: changing dir now..
command: /dir/file/create/vars.sh
그러나 문제의 경우 "shell" 모듈이 "command" 모듈보다 낫습니다.
답변3
이 옵션을 시도해 보았는데 괜찮은 것 같습니다.
pre_tasks:
- include_vars: vars.yml
tasks:
- name: Do task...
shell: cd "{{v_dir}}" && sh shell2.sh