Puncte:1

Ansible - nu se poate referi la valoarea parametrului modulului

drapel ph
azk

Acesta este cartea mea de joc

---
- gazde: mytestserver
  deveni: adevărat
  deveni_metoda: sudo
  gather_facts: adevărat

  vars:
  # Pentru a obține vgname și lvname de pe dispozitivul lui ansible_mounts 
    mt: "{{ MT }}" #Extravariabil
    disp_pth: „{{ item['device'] }}”
    disp_tmp: „{{ disp_pth | nume de bază }}”
    DISP: „{{ disp_tmp.split('-') }}”
    Nume VG: „{{ DISP.0 }}”
    LVname1: „{{ DISP.1 }}”
    DISPP2: „{{ DISP.3|implicit('') }}”
    LVname2: „{{ DISP.1 }}-{{ DISPP2 }}”
    LVname: „{{ LVname2 if (disp_tmp | regex_search('--')) else LVname1 }}”


  sarcini:
    - nume: Obțineți valorile sistemului de fișiere
      lvol:
        vg: „{{ VGname }}”
        lv: „{{ LVname }}”
      with_items: „{{ ansible_mounts }}”
      când: item.mount == MT
      înregistrare: myfs

    - depanare:
        var: myfs

Cand il execut:

$ ansible-playbook -i proiecte/Inventar/awx_hosts -l mytestserver getlvmfacts.yml -e MT=/DATA

Primesc valorile:

PLAY [mytestserver] ************************************************ **************************************************** **************************************************** **************************************************** *************

SARCINA [Adunarea faptelor] ********************************************* **************************************************** **************************************************** **************************************************** ***************
ok: [serverul meu de teste]

SARCINA [Obține valori ale sistemului de fișiere] ******************************************** **************************************************** **************************************************** **************************************************** *********
ok: [mytestserver] => (item={'block_used': 21620, 'uuid': '7fef92b8-8157-43d1-92b4-525a56fa33f8', 'size_total': 1056858112, 'block_total:': '258mount:': '2,'block_total:': /DATE', 'block_available': 236402, 'size_available': 968302592, 'fstype': 'ext4', 'inode_total': 65536, 'options': 'rw', 'device': '/dev/mapper/vgAPP- DATE”, „inode_used”: 11, „block_size”: 4096, „inode_available”: 65525})

SARCINA [depanare] ************************************************ **************************************************** **************************************************** **************************************************** ************************
ok: [mytestserver] => {
    „myfs”: {
        „schimbat”: fals,
        "msg": "Toate elementele finalizate",
        „rezultate”: [
            {
                "ansible_loop_var": "articol",
                „schimbat”: fals,
                „articol”: {
                    „block_available”: 414770,
                    „block_size”: 4096,
                    „block_total”: 516052,
                    „block_used”: 101282,
                    „dispozitiv”: „/dev/mapper/vg00-lvol01”,
                    "fstype": "ext3",
                    „inode_available”: 124211,
                    "inode_total": 131072,
                    "inode_used": 6861,
                    "montură": "/",
                    "opțiuni": "rw",
                    „size_available”: 1698897920,
                    „size_total”: 2113748992,
                    „uuid”: „7df9171b-c31f-434f-94c5-344d02775e89”
                },
                "skip_reason": "Rezultatul condiționat a fost fals",
                „sărit”: adevărat
            },
            {
                "ansible_loop_var": "articol",
                „schimbat”: fals,
                „articol”: {
                    „block_available”: 1037688,
                    „block_size”: 4096,
                    „block_total”: 1046016,
                    „block_used”: 8328,
                    „dispozitiv”: „/dev/mapper/vgDATA-BASET--DATA1”,
                    "fstype": "xfs",
                    „inode_available”: 4194301,
                    "inode_total": 4194304,
                    "inode_used": 3,
                    "mount": "/BASET/DATA1",
                    "opțiuni": "rw",
                    „size_available”: 4250370048,
                    „size_total”: 4284481536,
                    „uuid”: „91689e9b-552c-4f0e-b0ec-0d3d25154a72”
                },
                "skip_reason": "Rezultatul condiționat a fost fals",
                „sărit”: adevărat
            },
            {
                "ansible_loop_var": "articol",
                „schimbat”: fals,
                „eșuat”: fals,
                „invocare”: {
                    „module_args”: {
                        „activ”: adevărat,
                        „forță”: fals,
                        "lv": "DATE",
                        „optează”: nul,
                        „pvs”: nul,
                        „resizefs”: false,
                        „micșora”: adevărat,
                        „dimensiune”: nul,
                        „instantaneu”: nul,
                        "state": "prezent",
                        „thinpool”: nul,
                        "vg": "vgAPP"
                    }
                },
                „articol”: {
                    „block_available”: 236402,
                    „block_size”: 4096,
                    „block_total”: 258022,
                    „block_used”: 21620,
                    „dispozitiv”: „/dev/mapper/vgAPP-DATA”,
                    "fstype": "ext4",
                    „inode_available”: 65525,
                    "inode_total": 65536,
                    "inode_used": 11,
                    "mount": "/DATE",
                    "opțiuni": "rw",
                    „size_available”: 968302592,
                    „size_total”: 1056858112,
                    „uuid”: „7fef92b8-8157-43d1-92b4-525a56fa33f8”
                },
                "lv": "DATE",
                „dimensiune”: 1024.0,
                "vg": "vgAPP"
            },
            {
                "ansible_loop_var": "articol",
                „schimbat”: fals,
                „articol”: {
                    „block_available”: 472667,
                    „block_size”: 4096,
                    „block_total”: 516052,
                    „block_used”: 43385,
                    „dispozitiv”: „/dev/mapper/vg00-lvol07”,
                    "fstype": "ext3",
                    „inode_available”: 131061,
                    "inode_total": 131072,
                    "inode_used": 11,
                    "mount": "/tivoli",
                    "opțiuni": "rw",
                    „size_available”: 1936044032,
                    „size_total”: 2113748992,
                    „uuid”: „2310d046-eaad-4419-a94b-197c2c56502c”
                },
                "skip_reason": "Rezultatul condiționat a fost fals",
                „sărit”: adevărat
            }
        ]
    }
}

Până la sfârșitul punctului de montare potrivit (/DATA) există trei parametri ai sistemelor de fișiere:

"lv": "DATE",
„dimensiune”: 1024.0,
"vg": "vgAPP"

Întrebarea este: cum mă pot referi la acești parametri?

Am incercat sa folosesc myfs.lv dar nu funcționează și mai multe moduri. Cred că asta se datorează faptului că acestea nu sunt înăuntru.articol'

Dorit: folosind ceva de genul „myfs.lv” și obțineți „DATE”

sper ca poti ajuta. Mulțumesc anticipat!

Puncte:1
drapel th

Dacă vă referiți la structura pe care o depanează, puteți vedea asta myfs.lv este clar greșit, deoarece singurele chei de la nivelul superior sunt msg, schimbat, și rezultate.

Când rulați o sarcină într-o buclă, rezultatele sunt stocate ca o listă sub rezultate cheie a variabilei înregistrate. Pentru a accesa acel rezultat special, ai face ceva de genul myfs.results.2.lv.

În general, codificarea unui index ca acesta nu este ceea ce doriți, deci ar trebui să faceți ceva pentru a selecta rezultatul dorit. (myfs.results | reject('sărit') | listă | primul).lv ar recupera lv pentru primul rezultat nesărit.

Sau, bineînțeles, ați putea face acest lucru mai ușor pentru dvs., dacă nu faceți bucla în prima sarcină:

  sarcini:
    - nume: Obțineți valorile sistemului de fișiere
      lvol:
        vg: „{{ mount_dev_split.0 }}”
        lv: „{{ mount_dev_split.1 ~ lv_name_suffix }}”
      vars:
        mount_dev: „{{ (ansible_facts.mounts | selectattr('mount', 'equalto', MT) | list).0.device }}"
        mount_dev_split: „{{ (mount_dev | basename).split('-') }}”
        lv_name_suffix: „{{ ('-' ~ mount_dev_split.3 | default('')) dacă '--' în mount_dev else '' }}"
      înregistrare: myfs

    - depanare:
        msg: "{{ myfs.lv }}"
azk avatar
drapel ph
azk
Bine. In primul rand multumesc frumos!
azk avatar
drapel ph
azk
Bine. In primul rand multumesc frumos! Ai făcut-o mult mai ușor așa. Sunt nou în Ansible și există elemente pe care nu le gestionez. Apreciez ajutorul vostru. Multumesc din nou!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.