ansible启动过程如果没有使用ps

时间:2016-11-09 11:12:13

标签: linux centos ansible

我正在使用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

1 个答案:

答案 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

我的更改是:

  1. 我添加了"标签:namenode"排到第1部分;如果您要对此标记进行过滤,则需要收集注册值

  2. 我删除了你的第二部分并直接进入第三部分。

  3. 类似的配置对我来说也是一个类似的问题。