Lin*_*ver 8 command-line-interface ansible
我想打印出用于调用的命令行参数ansible-playbook。例如,如果我这样做
ansible-playbook foo.yml -e bar=quux
,我想访问上面的字符串,这样我就可以作为一项任务来完成
- shell: slack_notify.sh "{{ ansible_cli_invocation }}"
其中ansible_cli_invocation是一个值为 的字符串"ansible-playbook foo.yml -e bar=quux"。有没有办法做到这一点?
我不确定你是否可以开箱即用。
但你可以编写一个小动作插件:
from ansible.plugins.action import ActionBase
import sys
class ActionModule(ActionBase):
TRANSFERS_FILES = False
def run(self, tmp=None, task_vars=None):
return { 'changed': False, 'ansible_facts': { 'argv': sys.argv } }
Run Code Online (Sandbox Code Playgroud)
将其另存为./action_plugins/get_argv.py并创建一个空文件./library/get_argv.py。这将创建用参数列表get_argv填充argv事实的本地操作。
然后在你的剧本中:
- get_argv:
- shell: slack_notify.sh "{{ argv | join(' ') }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |