Команда, которая работает в скриптах bash и в терминале Amazon Linux 2, ломается, когда я вызываю ее из книги воспроизведения Ansible.Что конкретно мне нужно изменить, чтобы заставить эту команду работать в пьесе Ansible?
Команда, работающая в терминале целевого сервера, выглядит следующим образом:
[lnxcfg@ip-10-0-0-99 ~]$ MY_CALICO_CIDR=$( sudo cat /home/lnxcfg/calico.yaml | grep -A 1 CALICO_IPV4POOL_CIDR | grep value | cut -d ':' -f2 | tr -d ' "')
[lnxcfg@ip-10-0-0-99 ~]$ echo $MY_CALICO_CIDR
192.168.0.0/16
И затем я помещаю ту же команду в книгу воспроизведения Ansible следующим образом:
- name: Put cidr for overlay network into environment variable
command: MY_CALICO_CIDR=$( cat /home/lnxcfg/calico.yaml | grep -A 1 CALICO_IPV4POOL_CIDR | grep value | cut -d ':' -f2 | tr -d ' "')
become: yes
become_user: root
Но результат выполнения Ansible показывает, что Ansible анализирует команду и выдает ошибки в результате следующим образом:
TASK [Put cidr for overlay network into environment variable] **********************************************************************
fatal: [10.0.0.6]: FAILED! => {
"changed": false, "cmd": "'MY_CALICO_CIDR=$(' cat /home/lnxcfg/calico.yaml '|' grep -A 1 CALICO_IPV4POOL_CIDR '|' grep value '|' cut -d : -f2 '|' tr -d ' \")'", "msg": "[Errno 2] No such file or directory", "rc": 2
}
[WARNING]: Could not create retry file '/home/lnxcfg/playbooks/initializeKubernetesMaster.retry'. [Errno 13] Permission
denied: u'/home/lnxcfg/playbooks/initializeKubernetesMaster.retry'
Это продолжение до этого другого вопроса .
Итак, какие изменения необходимо внести в Ansible Playbook, чтобы избежать этой ошибки?