LINUX.ORG.RU

не могу разобраться с ansible

 


1

2

есть файл,который зашифрован через ansible vault, в нем переменная , нужно в любом случае получить переменную из этого файла,делал что то тип такого:

- hosts: all
  become: true
  tasks:
  - name: check on enrypted secret ?
    shell: cat /home/user/ans/var
    register: encState


  - name: cat encrypt file
    shell: cat /home/ans/var | grep vars
    when: "'vars' in encState.stdout"
    register: var     

  - name: view ecnrypt file
    shell: ansible-vault view /home/user/ans/var --vault-password-file /home/user/ans/1 | grep vars
    register: var     
    when: not 'vars' in encState.stdout

  - name: end
    debug: msg="{{var}}"

но , если файл зашифрован ,оно читает его , если файл не зашифрован,оно его читает через cat , но потом каким то образом переменная перезаписывается nam-ом который скипается , как такое решается ?


  1. Не нужно юзать ansible vault. Нужно юзать git-crypt.
  2. Не нужно юзать ansible. Нужно юзать NixOS и NixOps.
anonymous ()

Задача просто выводить переменную независимо от того зашифрован файл или нет?

- name: Test vault var
  hosts: localhost
  become: false

  vars_files:
    - ../vars/test.yml

  tasks:
    - name: end
      debug: msg="{{vault_test}}"

Сам файл с переменной в волте

realloc@sunset:~/test$ cat vars/test.yml 
$ANSIBLE_VAULT;1.1;AES256
30373866306438353336613963613731616434356239316438356661306437623165343663633663
6465333063666634363131393162393630353838633461370a656331316333366466336232643064
30373862663838643264653830333432663862366663653630376536666334333262643932626361
6535626334336263620a626664303635343231633864333862306532616531316234316337303737
32366631333932646366353538386239323961653365363134653730336436323839643466663162
3761616362656266643265346266303865613631353961303338
realloc@sunset:~/test$ ansible-vault view vars/test.yml 
---

vault_test: "It's a secret!"

Результат запуска:

realloc@sunset:~/test$ ansible-playbook plays/test.yml

PLAY [Test vault var] *******************************************************

TASK [Gathering Facts] ******************************************************
ok: [localhost]

TASK [end] ******************************************************************
ok: [localhost] => {
    "msg": "It's a secret!"
}

PLAY RECAP ******************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0   

realloc ★★★★ ()
Ответ на: комментарий от realloc

Все круто!

но, дело в том что нужно слегка пропарсить значение переменной,по этмоу и использовался shell...

echo_ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.