问题标签 [ansible-2.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ansible - 使用 ansible playbook 执行 curl -X
我想使用 ansible playbook 执行下一个命令:
我该如何运行它?
如果我运行:
我有下一个失败:
fatal: [172.16.8.231]: FAILED! => {"failed": true, "msg": "ERROR! the
file_name '/home/ikerlan/Ik4-Data-Platform/ansible/playbooks/Z_PONER_EN_MARCHA/dns-consul/mesos-consul.j2' does not exist, or is not readable"}
ansible-playbook - 剧本掉毛
我想检查一个剧本来检测以下几种可能性:
- 未定义的变量
- 未使用的变量
- 查看定义的 var 在忽略大小写时是否相同(此后有冲突的 var)
我无法弄清楚这样做的好方法是什么?我不想重新发明轮子,从某种意义上说:
- 我不想做文本处理。Ansible 这样做是为了完成它的任务。
- 如果我没记错的话,挂钩或回调比我认为我的解决方案应该加入的级别高几个级别。
我的目的是编写一个可以无缝且可选地与 ansible 配合使用的工具。如果可以,我不想修改 ansible 的代码。
任何帮助或黑客或建议表示赞赏。
PS:语法检查不会告诉我上面提到的内容。我已经查看了ansible-lint工具。它进行文本处理,不支持库存(用于 host_vars 等)并且不使用 ansible python API。所以为了做我需要的事情,我必须调用许多 ansible 的内部 API,我最终会在我的工具中编写 ansible 的代码。
ansible - Ansible:用 blockinfile 注释掉定义的 python 代码块?
尝试使用 Ansible 从服务器上的文件 (websocket.py) 中注释几行,但由于某种原因,我的代码没有在 OPCODE_CONTINUATION 之前添加第二个注释块。
想法是在“slots”行之前添加三个引号,在“OPCODE_CONTINUATION”行之前添加三个引号。我当前的解决方案尝试使用正则表达式查找行,但显然有问题,因为只添加了第一个注释块。
Ansible 版本 2.0.1.0 (2016/02/22 11:04:54)
websocket.py 的片段:
Ansible 剧本脚本:
结果
文件:Websocket.py
command-line-arguments - 在 Ansible 中构建映射时出现警告
每当我运行我的剧本时,都会出现以下警告:
[警告]:在从 /etc/ansible/roles/foo/tasks/main.yml 构建映射时,第 17 行第 3 列,发现重复的 dict 键(文件)。仅使用最后定义的值。
我在任务文件夹中的 main.yml 的相关部分是这样的:
(第 17 行是清理文件的任务,这似乎有点不对劲,所以我猜问题出在前面的“脚本”行)
还有我的 vars 文件:
要运行我的剧本,我会:
我想要做的是获取命令行参数,设置主机:使用“服务器”参数,获取任务名并从中找出 id 所指的。此 id 用作远程运行的 python 脚本的第一个输入。
该剧本工作正常,但我不明白为什么会收到警告。谁能解释这里有什么问题?
automation - 用户在特定组中时创建目录
我正在尝试执行以下任务,如果用户是 hdfsuser 组的一部分,则创建一个目录
但收到此错误:
有人知道解决方法吗?
ansible - Ansbile AWS 动态库存组无法匹配 Play 主机
我无法让我的 Ansible 游戏hosts
与为我的动态清单返回的 AWS 动态组匹配。让我们分解这个问题。
鉴于此输出ec2.py --list
:
我应该能够编写一个匹配一些回来的组的剧本:
但是,当我--list-hosts
匹配这些播放时,很明显播放主机没有匹配任何返回的内容:
ansible - Ansible playbook 只添加角色依赖变量
所有文件都是
我怎样才能做到这一点 ?
我想过这个
有点麻烦,但我认为这可能是唯一的解决方法。
为什么我想要这个是我不希望用户关心太多文件(group_vars,host_vars,extra_vars
),他们不知道ansible,我必须尽可能简单地部署我们的系统,他们唯一需要关心的是库存文件,像这样
但是加载变量的顺序是
- 角色默认值
- 库存变量
- 库存组变量
- 清单 host_vars
- 剧本 group_vars
- 剧本host_vars
- 主机事实
- 注册变量
- 设置事实
- 玩变量
- 播放 vars_prompt
- 播放 vars_files
- 角色和包含变量
- 块变量(仅适用于块中的任务)
- 任务变量(仅用于任务)
- 额外变量(总是优先)
这对这个组织来说很难,因为我不能这样做,var 文件会打败库存配置。
java - apt_repository 模块失败
有时当我运行我的剧本时,它会引发下一个失败:
剧本中“有时”失败的部分是下一个:
automation - 如何使用带有播放主机 IP 的 ansible 创建主机文件
我正在尝试使用以下任务创建主机文件。我在完全不属于组['hadoop']的机器上运行此任务。在这里,我想为来自组 ['hadoop'] 的节点创建主机文件,而不是在组 ['hadoop'] 上运行我的这个游戏
我试过了,但没有用,只有当我的游戏主机中有组['hadoop']时它才有效。
有人知道我在这里做错了什么吗?
ansible - 一次播放多个ansible playbook时如何跳过失败并继续运行?
我在我的一个项目中运行多个用于测试自动化的 ansible 剧本。问题是,即使一项任务(在一个剧本中)失败,测试(包含多个剧本)也会中止。
有没有办法克服这个问题?