如何从Ansible运行shell别名docker命令?

时间:2018-08-10 07:19:39

标签: docker ansible

一个客户拥有一本运行本地操作的剧本,在这种情况下,是针对RDS端点的sqlplus命令。

 shell: "echo exit|sqlplus64 '{{db_pnyx_username}}/{{db_pnyx_password}}@//{{ host }}:{{ port }}/{{db_pnyx_service_name}}' @vhosts.sql"

在运行Ubuntu时,我很好奇如何避免由于sqlplus软件包而安装太多软件包依赖项,所以我决定尝试使用容器方式。

 - name : Execute SQL 
    shell: "echo exit|docker run --rm  --net=host -v $PWD:/tmp rubendob/sqlplus:dockerplus '{{db_pnyx_username}}/{{db_pnyx_password}}@//{{ host }}:{{ port }}/{{db_pnyx_service_name}}' @/tmp/vhosts.sql"
    register: result

成功了!

但是我还想使用.profile文件中的别名快捷方式运行docker,如下所示:

alias sqlplus64='docker run --rm --net=host -v $PWD:/tmp rubendob/sqlplus:dockerplus'

Ansible总是返回错误:

"stderr": "/bin/sh: 1: sqlplus64: not found", "stderr_lines": ["/bin/sh: 1: sqlplus64: not found"], "stdout": "", "stdout_lines": []}

有什么方法可以根据最佳实践来实现?我敢打赌我在这里做很多坏事:(

0 个答案:

没有答案