git – Развёртывание программного обеспечения (или файлов) из git-чекаутов
Описание
- Управление git-чекаутами репозиториев для развёртывания файлов или программного обеспечения.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- git>=1.7.1 (утилита командной строки)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| accept_hostkey boolean добавлен в 1.5 |
| если yes, убедитесь, что опция ssh содержит "-o StrictHostKeyChecking=no". |
| archive - добавлен в 2.4 | Укажите путь к файлу архива с расширением. Если указано, создаётся архив указанного формата, содержащий структуру дерева исходного дерева. Разрешенные форматы архивов ["zip", "tar.gz", "tar", "tgz"] Это позволит клонировать и выполнить git archive из локального каталога, так как не все git-серверы поддерживают git archive. | |
| bare boolean добавлен в 1.4 |
| если yes, репозиторий будет создан как bare-репозиторий, иначе это будет стандартный репозиторий с рабочей областью. |
| clone boolean добавлен в 1.9 |
| Если no, репозиторий не будет клонирован, если он не существует локально |
| depth - | Создать неполное клонирование с историей, усеченной до указанного числа ревизий. Минимальное возможное значение — 1, в противном случае игнорируется. Требуется git>=1.9.1 для корректной работы. | |
| dest - / обязательно | Путь к месту, где должен быть развернут репозиторий. Этот параметр обязателен, если clone не установлен в no. | |
| executable - добавлен в 1.4 | Путь к используемой утилите git. Если не указан, используется обычный механизм определения путей к бинарным файлам. | |
| force boolean |
| Если yes, любые изменённые файлы в рабочей копии репозитория будут удалены. До версии 0.7 это всегда было 'да' и отключить нельзя было. До версии 1.9 значение по умолчанию было `да` |
| key_file - добавлен в 1.5 | Укажите путь к необязательному файлу приватного ключа на целевом хосте для использования при развёртывании. | |
| recursive boolean добавлен в 1.6 |
| Если no, репозиторий будет клонирован без опции --recursive, пропуская подмодули. |
| reference - добавлен в 1.4 | Ссылка на репозиторий (см. "git clone --reference ...") | |
| refspec - добавлен в 1.9 | Добавить дополнительную refspec для получения. Если версия установлена в SHA-1, недоступную ни с одной ветки или тега, эта опция может быть необходимой для указания ref, содержащего SHA-1. Использует тот же синтаксис, что и команда 'git fetch'. Пример значения может быть "refs/meta/config". | |
| remote - | По умолчанию: "origin" | Имя удалённого репозитория. |
| repo - / обязательно | Адрес git-репозитория по протоколу git, SSH или HTTP(S). псевдонимы: имя | |
| separate_git_dir - добавлен в 2.7 | Путь для размещения клонированного репозитория. Если указано, Git-репозиторий может быть отделён от рабочей области. | |
| ssh_opts - добавлен в 1.5 | Создаёт скрипт-обёртку и экспортирует путь как GIT_SSH, который git затем автоматически использует для переопределения аргументов ssh. Пример значения: "-o StrictHostKeyChecking=no" | |
| track_submodules boolean добавлен в 1.8 |
| если yes, подмодули будут отслеживать последний коммит в своей ветке master (или другой ветке, указанной в .gitmodules). Если no, подмодули будут сохранены в ревизии, определённой основным проектом. Это эквивалентно указанию флага --remote к git submodule update. |
| umask - добавлен в 2.2 | Установка umask перед любым развёртыванием или другими операциями с репозиторием. | |
| update boolean |
| Если no, новые ревизии не будут получены из исходного репозитория.Операции, такие как archive, будут работать с существующим (старым) репозиторием и могут не реагировать на изменения вариантов или удалённого репозитория. |
| verify_commit boolean добавлен в 2.0 |
| если yes, при клонировании или развёртывании version будет проверена подпись GPG-подписанного коммита. Для этого требуется git версия>=2.1.0. Коммит ДОЛЖЕН быть подписан, и открытый ключ ДОЛЖЕН быть доступен в хранилище GPG. |
| version - | По умолчанию: "HEAD" | Версия репозитория для развёртывания. Это может быть строка HEAD, имя ветки, имя тега. Это также может быть хеш SHA-1, в этом случае refspec необходимо указать, если данная ревизия ещё не доступна. |
Примечания
Примечание
- Если задача зависает, сначала проверьте, что удалённый хост находится в
known_hosts. SSH запросит у пользователя разрешение на первый контакт с удалённым хостом. Чтобы избежать этого запроса, можно использовать опцию accept_hostkey. Другой вариант — добавить открытый ключ удалённого хоста в/etc/ssh/ssh_known_hostsперед вызовом модуля git командой: ssh-keyscan -H remote_host.com >> /etc/ssh/ssh_known_hosts.
Примеры
# Example git checkout from Ansible Playbooks
- git:
repo: 'https://foosball.example.org/path/to/repo.git'
dest: /srv/checkout
version: release-0.22
# Example read-write git checkout from github
- git:
repo: ssh://git@github.com/mylogin/hello.git
dest: /home/mylogin/hello
# Example just ensuring the repo checkout exists
- git:
repo: 'https://foosball.example.org/path/to/repo.git'
dest: /srv/checkout
update: no
# Example just get information about the repository whether or not it has
# already been cloned locally.
- git:
repo: 'https://foosball.example.org/path/to/repo.git'
dest: /srv/checkout
clone: no
update: no
# Example checkout a github repo and use refspec to fetch all pull requests
- git:
repo: https://github.com/ansible/ansible-examples.git
dest: /src/ansible-examples
refspec: '+refs/pull/*:refs/heads/*'
# Example Create git archive from repo
- git:
repo: https://github.com/ansible/ansible-examples.git
dest: /src/ansible-examples
archive: /tmp/ansible-examples.zip
# Example clone a repo with separate git directory
- git:
repo: https://github.com/ansible/ansible-examples.git
dest: /src/ansible-examples
separate_git_dir: /src/ansible-examples.git
Возвращаемые значения
Общие значения возвращаемых результатов описаны в здесь. Ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| after строка | успех | последняя ревизия коммита репозитория, полученного во время обновления Пример: 4c020102a9cd6fe908c9a4a326a38f972f63a903 |
| before строка | успех | ревизия коммита до обновления репозитория, «null» для нового репозитория Пример: 67c04ebe40a003bda0efb34eacfb93b0cafdf628 |
| git_dir_before строка | успех | Содержит исходный путь к каталогу .git, если он был изменён Пример: /path/to/old/git/dir |
| git_dir_now строка | успех | Содержит новый путь к каталогу .git, если он был изменён Пример: /path/to/new/git/dir |
| remote_url_changed булево | успех | Содержит True или False, в зависимости от того, была ли изменена удалённая URL-адреса. Пример: True |
| warnings строка | ошибка | Список предупреждений, если запрошенные возможности недоступны из-за слишком старой версии Git. Пример: Ваша версия Git слишком старая, чтобы полностью поддерживать аргумент depth. Возвращается к полному созданию копий. |
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается командой разработчиков Ansible. [core]
Поддержка Red Hat
Дополнительная информация о поддержке данного модуля компанией Red Hat доступна в этой статье базы знаний Red Hat.
Авторы
- Команда разработчиков Ansible
- Майкл ДеХан
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/git_module.html