makefile - 将 make 与 Ansible 一起使用时是否可以设置标志?
问题描述
我想知道是否可以在ansible
使用其community.general.make
模块时传递以下命令:
make -C safenet install PREFIX=~/.local
我必须使用params
,如此处所述吗?例如
- name: installing safenet
community.general.make:
chdir: ~/myfiles/safenet
target: install
params:
- "-C"
- PREFIX=~/.local
编辑:这是我得到的输出。
TASK [Installing safenet] *******************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "argument 'params' is of type <class 'list'> and we were unable to convert to dict: <class 'list'> cannot be converted to a dict"}
解决方案
万一其他人对此有疑问,这是一个相当简单的解决方法:您只需要使用params
. 由于此模块不喜欢用~
作主文件夹,因此您需要使用变量或插件使其使用home
当前用户的文件夹($USER
)。例如
- name: "Your task"
community.general.make:
chdir: /home/{{ lookup('env', 'USER') }}/path/to/makefile
target: install
params: PREFIX=/home/{{ lookup('env', 'USER') }}/path/you/want/to/use
这{{ lookup('env', 'USER') }}
使得 Ansible 查找当前用户名。
希望这对将来的其他人有所帮助。
推荐阅读
- go - Swagger 在每个 db 调用上初始化 db(gorm) 连接
- java - 结果集开始之前 (SQLException)
- r - 有条件地用不同的变量替换变量
- python - 在二维数组中查找第一个最大值 - Python
- javascript - 如何将 ResizeObserver 用于多种行为
- mysql - 使用 Avro 作为使用 MySQL Debezium 连接器的发件箱模式的数据格式
- python - Python函数不传递变量
- phpstorm - WSL2 - 运行 webpack 构建找不到 npm-cli.js 错误
- machine-learning - 机器学习图像特征提取
- c - 为什么我的 c 代码从 VSCode 终端运行时崩溃,但从 gnome 终端运行时运行良好?