我有一个非常简单的Ansible任务模块,它执行以下操作:
# Runs a couple of plays successfully...
- name: check if php-fastcgi process running
shell: ps -eaf | grep php5-cgi | grep -v grep
register: php-fastcgi-status
ignore_errors: True
changed_when: False
- debug: var=php-fastcgi-status.rc
- meta: end_play
当我运行我的剧本时,我收到以下错误:
TASK [php: check if php-fastcgi process running] ********
ok: [myexample.com]
TASK [php: debug] ***********
ok: [myexample.com] => {
"php-fastcgi-status.rc": "VARIABLE IS NOT DEFINED!"
}
然而,如果我登录服务器并手动运行相同的命令:
ps -eaf | grep php5-cgi | grep -v grep
......我看到了所有的过程。如果我做了
echo $?
我按照预期得到“0”。我的Ansible剧本中我做错了什么?我一直在阅读Ansible文档并且在过去三个小时里一直在努力解决这个问题,并且看不出有什么问题。
答案 0 :(得分:2)
您的注册变量名称包含无效字符。将-
替换为_
。
register: php_fastcgi_status
来自What Makes A Valid Variable Name
变量名称应为字母,数字和下划线。变量 应该始终以一封信开头。
TASK [debug] *******************************************************************
ok: [localhost] => {
"php_fastcgi_status.rc": "0"
}