我有一个 shell 脚本,它只更改目录(这里给出了目录路径)。
外壳文件
#!/bin/bash
p="dir/file/create"
cd "$p"
exec bash
Ansible 手册
---
- 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
我想运行一个 shell 脚本来更改 ANSIBLE 中的目录路径,并在目录中运行后续的 shell 文件(#2)(再次是 shell 脚本)。
Ansible 剧本已完成,但我始终无法进入目录并执行 shell 脚本(#2)。
答案1
答案2
在您的脚本中,您应该输入完整的路径:
#!/bin/bash
p="/dir/file/create"
cd "$p"
不要在 COMMAND 模块前面使用 sh:
- name: changing dir now..
command: /dir/file/create/vars.sh
但对于您的问题,“shell”模块比“命令”模块更好。
答案3
我尝试了这个选项并且对我来说似乎很好:
pre_tasks:
- include_vars: vars.yml
tasks:
- name: Do task...
shell: cd "{{v_dir}}" && sh shell2.sh