ansible-playbook extra vars с пробелом в значении
у меня есть проблема с предоставлением значения через дополнительные vars, когда я запускаю свой playbook, используя:
ansible-playbook gitolite-docker.yml -e "GITOLITE_SSH_KEY=$(cat roles/gitolite-docker/files/john_rsa.pub)" --ask-vault-pass
вот выдержка из gitolite-docker.yml
- name: logging admin.pub
shell: echo "{{GITOLITE_SSH_KEY}}" > /home/ansusersu/gitoliteadmin.pub
- name: create gitolite--docker container
docker_container:
name: gitolite
image: alex2357/docker-gitolite
state: started
ports:
- "8081:22"
volumes:
- "/docker/volumes/gitoliterepositories:/home/git/repositories"
env:
SSH_KEY: "{{GITOLITE_SSH_KEY}}"
KEEP_USERS_KEYS: "dummytext"
become: yes
проблема в том, что я получаю только первые несколько символов "ssh-rsa" из SSH-ключа.
john@john-VirtualBox:~$ sudo cat /home/ansusersu/gitoliteadmin.pub
ssh-rsa
john@john-VirtualBox:~$
Я получаю точно такое же значение в обоих случаях {{GITOLITE_SSH_KEY}}
. В контейнере Docker у меня точно такое же значение в файлах журнала.
для Докера аналогичная линия работает отлично:
docker run -d -p 8081:22 --name gitolite -e SSH_KEY="$(cat ~/.ssh/id_rsa.pub)" -v /docker/volumes/gitoliterepositories:/home/git/repositories alex2357/docker-gitolite
когда я увидел это мне кажется, что я не смогу добиться такого же поведения с Ansible-playbook, как с Docker, поскольку он рассматривает оставшийся персонал как еще один дополнительный var. Есть ли способ заставить его работать?
1 ответов
правильное цитирование должно решить проблему:
ansible-playbook gitolite-docker.yml -e "GITOLITE_SSH_KEY='$(cat roles/gitolite-docker/files/john_rsa.pub)'" --ask-vault-pass
В конце концов с двойными кавычками:
ansible-playbook gitolite-docker.yml -e "GITOLITE_SSH_KEY=\"$(cat roles/gitolite-docker/files/john_rsa.pub)\"" --ask-vault-pass