Привет, у меня есть корпоративный сервер git, на котором я создал частный test-repo
и добавил ssh-ключ в форму для развертывания ssh-ключа. Я определил git
роль в моих общих ролях, которая имеет определение ниже yml.
---
- name: github enterprise private key
copy: >
src=id_rsa_ghe
dest=/etc/id_rsa_ghe
owner=root
group=root
mode=0600
- name: clone test-repo project
git:
repo: git@git.example-private.com:code/test-repo.git
dest: /etc/test-repo
accept_hostkey: true
key_file: /etc/id_rsa_ghe
в roles/common/git
Я определил files
папка, в которую я поместил свой закрытый ключ для git clone, но я все еще получаю ошибку, как показано ниже
фатальный: [localhost]: НЕ ВЫПОЛНЕНО! => {"изменено": false, "cmd": ["/ usr / bin / git", "fetch", "--tags", "origin"], "failed": true, "msg": "Failed для загрузки удаленных объектов и ссылок: ОШИБКА: Репозиторий не найден. \ nfatal: Не удалось прочитать из удаленного репозитория. \ n \ nУбедитесь, что у вас есть правильные права доступа \ nи репозиторий существует. \ n "}
Ниже приведены сведения о моей системе. И я запускаю эту пьесу локально на одном из своих серверов.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
$ansible --version
ansible 2.2.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
Ниже приведена фактическая ошибка, которую я получаю, репозиторий не найден.
Использование файла модуля /usr/lib/python2.7/dist-packages/ansible/modules/core/source_control/git.py <127.0.0.1> УСТАНОВИТЬ ЛОКАЛЬНОЕ СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: root <127.0.0.1> EXEC / bin / sh - c '(umask 77 && mkdir -p "
echo ~/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507
"&& echo ansible-tmp-1487398723.48-100968102221507 ="echo ~/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507
") && sleep 0 '<127.0.0.1> PUT / tmp / tmp2Bijvu TO /home/ubuntu/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507/git.py <127.0.0.1> EXEC / bin / sh -c 'chmod u + x /home/ubuntu/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507/ /home/ubuntu/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507/git.py && sleep 0' <127.0 .0.1> EXEC / bin / sh -c '/ usr / bin / python /home/ubuntu/.ansible/tmp/ansible-tmp-1487398723.48-100968102221507/git.py; rm -rf "/home/ubuntu/.ansible /tmp/ansible-tmp-1487398723.48-100968102221507/ "/ dev / null 2> & 1 && sleep 0 'фатальный: [localhost]: НЕ ПРОШЛО! => {"изменено": false, "cmd": ["/ usr / bin / git", "fetch", "--tags", "origin"], "failed": true, "invocation": {" module_args ": {" accept_hostkey ": true," bare ": false," clone ": true," depth ": null," dest ":" / etc / dotfiles "," исполняемый ": null," force ": false , «ключевой_файл»: «/ etc / id_rsa_ghe», «рекурсивный»: true, «reference»: null, «refspec»: null, «remote»: «origin», «repo»: «git@git.example-private» .com: code / test-repo.git "," ssh_opts ": null," track_submodules ": false," umask ": null," update ": true," verify_commit ": false," version ":" HEAD "} , "module_name": "git"}, "msg": "Не удалось загрузить удаленные объекты и ссылки: ОШИБКА: Репозиторий не найден. \ nfatal: Не удалось прочитать из удаленного репозитория. \ n \ nПожалуйста, убедитесь, что у вас есть правильный доступ права \ nи репозиторий существует. \ n "}
Похоже на твой clone test-repo project
В задаче есть синтаксическая ошибка, поэтому Ansible не может найти репозиторий. Заменить :
с участием /
для repo
такой параметр:
- name: clone test-repo project
git:
repo: git@git.example-private.com/code/test-repo.git
dest: /etc/test-repo
accept_hostkey: true
key_file: /etc/id_rsa_ghe
Вы бы использовали :
для определения нестандартного порта.