我正在尝试使用 ansible-playbook
将 Python 安装到虚拟机上(让我们将其称为"目标机器"(。目标机器根本没有安装Python版本(轻量级Unix版本(
据我了解,大多数 ansible 模块都要求目标机器上安装 Python。但是,原始模块不会。
我似乎甚至无法获得最基本的命令来处理原始模块,似乎 ansirble 仍在目标机器上寻找 Python。如果我手动 ssh 到目标机器并安装 Python,那么ansible-playbook
开始工作。
错误信息:
fatal: [dev]: FAILED! =>
{"changed": false, "failed": true,
"module_stderr": "Shared connection to 192.168.99.100 closed.rn",
"module_stdout": "/bin/sh: /usr/bin/python: not foundrn",
"msg": "MODULE FAILURE", "rc": 0}
文件/host_vars/dev.yml
:
#NOTE: I can manually ssh in with the details without a problem
ansible_ssh_port: 22
ansible_user: docker
ansible_ssh_host: 192.168.99.100
ansible_ssh_private_key_file: ~/.docker/machine/machines/default/id_rsa
文件playbook.yml
:
- hosts: all
tasks:
- name: test the raw module
raw: echo "Hello World"
文件hosts
:
dev
命令我运行:
ansible-playbook -i ./hosts ./playbook.yml
为什么原始命令要查找 Python?
如何在没有 Python 的目标机器的情况下使用 Ansible 运行命令?
它不是raw
模块,而是试图运行 Python 的事实收集。
加:
gather_facts: no