FILter значение из stdout_lines Ansible вывод ниже - PullRequest
0 голосов
/ 23 января 2020

Я хотел бы FIlter значение Endpoint из stdout_lines из Ansible вывод ниже:

            "{", 
            "    \"DBCluster\": {", 
            "        \"MasterUsername\": \"mstrusr\", ", 
            "        \"ReaderEndpoint\": \"tstng4.cluster-ro-czzpyhxnqlzh.us-east-1.docdb.amazonaws.com\", ", 
            "        \"VpcSecurityGroups\": [", 
            "            {", 
            "                \"Status\": \"active\", ", 
            "                \"VpcSecurityGroupId\": \"sg-xxx5677\"", 
            "            }", 
            "        ], ", 
            "        \"HostedZoneId\": \"ZNKXH85TT8WVW\", ", 
            "        \"Status\": \"creating\", ", 
            "        \"MultiAZ\": false, ", 
            "        \"PreferredBackupWindow\": \"03:51-04:21\", ", 
            "        \"DBSubnetGroup\": \"subnet\", ", 
            "        \"BackupRetentionPeriod\": 1, ", 
            "        \"PreferredMaintenanceWindow\": \"mon:05:00-mon:05:30\", ", 
            "        \"Engine\": \"docdb\", ", 
            "        \"Endpoint\": \"tstng4.cluster-czzpyhxnqlzh.us-east-1.docdb.amazonaws.com\", ", 
            "        \"ClusterCreateTime\": \"2020-01-23T10:06:44.338Z\", ", 
            "        \"EngineVersion\": \"3.6.0\", ", 
            "        \"DeletionProtection\": true, ", 
            "        \"DBClusterIdentifier\": \"vce-docdb-tst4\", ", 
            "        \"DbClusterResourceId\": \"cluster-E3ICGSCJRPWDY7NRQTELXFCKTQ\", ", 
            "        \"DBClusterMembers\": [], ", 
            "        \"Port\": 27017, ", 
            "        \"StorageEncrypted\": false, ", 
            "        \"AssociatedRoles\": [], ", 
            "        \"DBClusterParameterGroup\": \"default.docdb3.6\", ", 
            "        \"AvailabilityZones\": [", 
            "            \"us-east-1a\", ", 
            "            \"us-east-1b\", ", 
            "            \"us-east-1c\"", 
            "        ], ", 
            "        \"DBClusterArn\": \"arn:aws:rds:us-east-1:570346948435:cluster:vce-docdb-tst4\"", 
            "    }", 

Я пытаюсь использовать фильтр ниже, чтобы получить значение Endpoint: stdout_lines.DBCluster.Endpoint

1 Ответ

0 голосов
/ 24 января 2020

Ваш результат - объект json, который необходимо пропустить через фильтр from_ json. Простой тест:

- hosts: masters
  gather_facts: false
  tasks:
  - shell: /root/ansible/test.sh
    register: result
  - debug:
      msg: "{{ (result.stdout | from_json).DBCluster.Endpoint }}"

Тестовые данные:

#!/bin/bash
echo '{'
echo '"DBCluster": {'
echo '"Endpoint": "value1"'
echo '}, "key2": "value2"'
echo '}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...