Ansible 远程节点上的命令和全局日志筛选器在Rundeck中出现问题
当我在远程节点上执行带有一些特殊字符的命令(如Ansible 远程节点上的命令和全局日志筛选器在Rundeck中出现问题,ansible,rundeck,Ansible,Rundeck,当我在远程节点上执行带有一些特殊字符的命令(如|)时,我遇到了一个问题。例如,如果我在本地运行ls/var/log/| grep rundeck,则结果如中所示是正确的,而在节点中出现错误(该节点还安装了rundeck,并且存在文件夹“rundeck”,因此命令应该可以工作) 在创建全局日志筛选器(如键值数据)时,我也会遇到同样的问题。我想获取正在使用的shell,因此我创建了一个带有键值数据的作业,然后我添加了第一步,其中包括运行命令env,第二步,echo'shell是“${Data.she
|
)时,我遇到了一个问题。例如,如果我在本地运行ls/var/log/| grep rundeck
,则结果如中所示是正确的,而在节点中出现错误(该节点还安装了rundeck,并且存在文件夹“rundeck”,因此命令应该可以工作)
在创建全局日志筛选器(如键值数据)时,我也会遇到同样的问题。我想获取正在使用的shell,因此我创建了一个带有键值数据的作业,然后我添加了第一步,其中包括运行命令env
,第二步,echo'shell是“${Data.shell}”
,以显示我从日志中获取的变量(从中提取的示例)。它在localhost中运行良好,但在选择远程节点时不会捕获任何数据。这可以分别在和中看到
我想知道这是一个bug,还是我在远程执行某些操作时做错了什么。我使用了Rundeck的Ansible插件,可能与此相关吗
使用作业定义编辑1:
使用命令执行作业。本地工作,远程故障。
- defaultTab: output
description: ''
executionEnabled: true
id: 4e10310c-b5e2-419e-a828-1ed7df4840e9
loglevel: INFO
name: Command_problem
nodeFilterEditable: false
scheduleEnabled: true
sequence:
commands:
- exec: ls /etc | grep yum
keepgoing: false
strategy: node-first
uuid: 4e10310c-b5e2-419e-a828-1ed7df4840e9
- defaultTab: output
description: ''
executionEnabled: true
id: 1da43d9b-691d-437b-882e-8fbee2790c73
loglevel: INFO
name: Key_Value_Data_problem
nodeFilterEditable: false
scheduleEnabled: true
sequence:
commands:
- exec: env
- exec: ' echo ''SHELL is "${data.SHELL}"'''
keepgoing: false
pluginConfig:
LogFilter:
- config:
logData: 'false'
regex: ^(SHELL|USER|PWD)\s*=\s*(.+)$
type: key-value-data
strategy: node-first
uuid: 1da43d9b-691d-437b-882e-8fbee2790c73
包含键值数据的作业。本地工作,远程不捕获任何数据。
- defaultTab: output
description: ''
executionEnabled: true
id: 4e10310c-b5e2-419e-a828-1ed7df4840e9
loglevel: INFO
name: Command_problem
nodeFilterEditable: false
scheduleEnabled: true
sequence:
commands:
- exec: ls /etc | grep yum
keepgoing: false
strategy: node-first
uuid: 4e10310c-b5e2-419e-a828-1ed7df4840e9
- defaultTab: output
description: ''
executionEnabled: true
id: 1da43d9b-691d-437b-882e-8fbee2790c73
loglevel: INFO
name: Key_Value_Data_problem
nodeFilterEditable: false
scheduleEnabled: true
sequence:
commands:
- exec: env
- exec: ' echo ''SHELL is "${data.SHELL}"'''
keepgoing: false
pluginConfig:
LogFilter:
- config:
logData: 'false'
regex: ^(SHELL|USER|PWD)\s*=\s*(.+)$
type: key-value-data
strategy: node-first
uuid: 1da43d9b-691d-437b-882e-8fbee2790c73
使用调试模式下的作业输出编辑2:
我分别更改了Rundeck计算机的ip和节点的“localhost”和“node ip”,并更改了“user name”的真实用户名
编辑3:
我已经知道问题出在哪里了。这是我添加到ansible.cfg文件的
force_color=1
行,以在Rundeck中获得彩色输出。如果删除该部分,那么键值数据功能也可以在远程节点上完美地工作。我猜这是一个bug。关于第一个问题,似乎是一个Ansible插件bug,我在这里打开了一个问题来跟进:
关于第二个问题,我做了一个有效的示例,看一下,只需将“分派到节点”更改为您的节点:
节点
真的
假的
提升
假的
1.
真的
29c0cb64-681c-4888-b2a8-f9eb02322155
信息
你好世界
假的
姓名:192.168.33.2*
真的
真的
第二期。
环境
真的
^(SHELL)\s*=\s*(.+)$
29c0cb64-681c-4888-b2a8-f9eb02322155
1) 这是数据的价值
2) 请回答。您能提供一个答案吗?提前谢谢,再见。可能重复。@Zeitounator我在yaml中添加了两个作业定义。很抱歉延迟响应,我的Rundeck计算机出现问题,无法访问。@Vladimir Botka,这可能就是发生的情况,Rundeck必须使用命令模块。是否可以将其更改为shell?询问。非常感谢您的帮助。我将跟踪您就第一个错误打开的问题的进度。相对于第二个,我尝试了你分享的工作定义,我遇到了与我在主要评论中描述的相同的问题,没有捕获数据。证据:1)命令步骤:2)剧本步骤:。我看到你的输出是黑色的,而我的是绿色的。我获得黑色输出的唯一时间是在本地执行作业时(键值数据不起作用)。我不知道这是否有什么关系。我编辑了我的主要帖子,其中有一个问题导致键值数据无法工作。它是ansible.cfg文件中的线force_color=1。谢谢你的帮助。