我正在使用ansible来启动namenode进程,如果它没有运行,我使用jps
检查进程并使用service_namenode_status
检查状态并使用{{1}启动进程任何想法如何正确使用这个......?
service_namenode_start
输出:
- name: Check if Namenode is running
shell: jps | grep " NameNode" | grep -v grep
ignore_errors: yes
changed_when: false
register: service_namenode_status
- name: Report status of Namenode
fail:
msg: |
Service NameNode is not running.
Return code from `jps | grep " NameNode" | grep -v grep`:
{{ service_namenode_status.rc }}
when: service_namenode_status.rc != 0
register: service_namenode_start
- name: Start Namenode
command: su - hdfs -c "/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode"
tags: namenode
when: service_namenode_status.rc != 0
答案 0 :(得分:0)
试试这个:
- name: Check if Namenode is running
tags: namenode
shell: jps | grep " NameNode" | grep -v grep
ignore_errors: yes
changed_when: false
register: service_namenode_status
- name: Start Namenode
tags: namenode
command: su - hdfs -c "/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode"
when: service_namenode_status.rc == 1
我的更改是:
我添加了"标签:namenode"排到第1部分;如果您要对此标记进行过滤,则需要收集注册值
我删除了你的第二部分并直接进入第三部分。
类似的配置对我来说也是一个类似的问题。