(vnc сервер захешировал пароль). его кодируем в base64. потом в плейбуке по коду base64 восстанавливаем бинарь.
                  
                  
                  но почему-то восстанавливается не то, что должно.
                  
                  
                  
                  
                  
                  вот пример. первый раз кодируем оригинальный файл, второй раз кодируем файл, который сгенерировал ансибл. как видим, хэши разные, т.е. исходный файл тоже разный. чек суммы если считать, тоже разные.
                  
                  
                  
                  
                  
                  [root@monitoring-pc ~]# base64 /etc/x11vnc.pass
                  
                  
                  hcgeZyKT+IY=
                  
                  
                  [root@monitoring-pc ~]# base64 /etc/x11vnc.pass
                  
                  
                  77+977+9Hmci77+977+977+9
                  
                  
                  
                  
                  
                  ansible-playbook --version
                  
                  
                  ansible-playbook 2.9.13
                  
                  
                    config file = /etc/ansible/ansible.cfg
                  
                  
                    configured module search path = [u'/home/support/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
                  
                  
                    ansible python module location = /usr/lib/python2.7/dist-packages/ansible
                  
                  
                    executable location = /usr/bin/ansible-playbook
                  
                  
                    python version = 2.7.17 (default, Jul 20 2020, 15:37:01) [GCC 7.5.0]
                  
                  
                  
                  
                  
                  всё делаю парой таких тасков.
                  
                  
                  
                  
                  
                    - name: Render x11vnc password file. Part 1
                  
                  
                      set_fact:
                  
                  
                        string_in_base64: 'hcgeZyKT+IY='
                  
                  
                      tags: try
                  
                  
                  
                  
                  
                    - name: Render x11vnc password file. Part 2
                  
                  
                      copy:
                  
                  
                        dest: "/etc/x11vnc.pass"
                  
                  
                        content: '{{ string_in_base64 | b64decode }}'
                  
                  
                      tags: try
                  
                  
                  
                  
                  
                  я читал, что в python2 есть баг по этому поводу. поэтому на целевой машине применяю python3
                  
                  
                  
                  
                  
                  [all:vars]
                  
                  
                  ansible_python_interpreter=/usr/bin/python3
                  
                  
                
похоже всё-таки от Python2 надо отказаться и на ведущей и на ведомой машине. https://stackoverflow.com/questions/58840430/how-to-decode-a-base64-var-to-a-binary-file-with-ansible-module
Обсуждают сегодня