Назад | Перейти на главную страницу

Ansible не может клонировать git с корпоративного сервера git

Привет, у меня есть корпоративный сервер 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

Вы бы использовали : для определения нестандартного порта.