Получить содержимое узла zk, который может отсутствовать, через ansible - PullRequest
0 голосов
/ 27 сентября 2019

Используя модуль znode от Ansible , я хотел бы получить содержимое узла ZK (который может отсутствовать).

В официальной документации просто указано:

# Getting the value and stat structure for a znode
- znode:
    hosts: 'localhost:2181'
    name: /mypath
    op: get

Я считаю, что мне нужно register: результат, чтобы использовать его.Но какова структура этого значения?и что произойдет, если узел не существует в zk?

NB: я планирую попробовать и опубликовать ответ здесь, если я узнаю сам.А пока, если кто-нибудь уже знает, как это сделать, не стесняйтесь ответить здесь!

1 Ответ

0 голосов
/ 27 сентября 2019

В случае, если указанный узел не существует, задача завершится ошибкой по умолчанию.Это, конечно, может быть переопределено с помощью failed_when:.

Итак, с приведенным ниже списком воспроизведения:

- hosts: localhost
  tasks :
    - name: Get ZK node
      znode:
        hosts: "zk-server:2181"
        name: /my/zk/node
        op: get
      register: node
      failed_when: false
    - debug:
        var: node

Я получаю следующие выходные данные, когда узел не существует:

TASK [debug] ***********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "node": {
        "changed": false, 
        "failed": false, 
        "failed_when_result": false, 
        "msg": "The requested node does not exist."
    }
}

и я получаю это, когда узел существует:

TASK [debug] ***********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "target_state": {
        "changed": false, 
        "failed": false, 
        "failed_when_result": false, 
        "msg": "The node was retrieved.", 
        "stat": {
            "acl_version": 0, 
            "aversion": 0, 
            "children_count": 0, 
            "children_version": 0, 
            "creation_transaction_id": 738760747521, 
            "ctime": 1564500556345, 
            "cversion": 0, 
            "czxid": 738760747521, 
            "dataLength": 12, 
            "data_length": 12, 
            "ephemeralOwner": 0, 
            "last_modified_transaction_id": 738760750645, 
            "mtime": 1564501388038, 
            "mzxid": 738760750645, 
            "numChildren": 0, 
            "pzxid": 738760747521, 
            "version": 1
        }, 
        "value": "Hello World!", 
        "znode": "/my/zk/node"
    }
}
...