git — Развёртывание программного обеспечения (или файлов) из git-чек-аутов
Описание
- Управление git-чек-аутами репозиториев для развёртывания файлов или программного обеспечения.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- git>=1.7.1 (инструмент командной строки)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| accept_hostkey bool (добавлен в 1.5) |
| если yes, убедитесь, что опция ssh "-o StrictHostKeyChecking=no" присутствует. |
| archive (добавлен в 2.4) | Укажите путь к файлу архива с расширением. Если указано, создаётся архив указанного формата, содержащий структуру дерева исходного дерева. Допустимые форматы архивов ["zip", "tar.gz", "tar", "tgz"] Это позволит клонировать и выполнить git archive из локального каталога, так как не все git-серверы поддерживают git archive. | |
| bare bool (добавлен в 1.4) |
| если yes, репозиторий будет создан как bare-репозиторий, в противном случае это будет стандартный репозиторий с рабочей областью. |
| clone bool (добавлен в 1.9) |
| Если no, не клонировать репозиторий, если он не существует локально |
| depth | Создать мелкозернистый клон с историей, урезанной до указанного количества или версий. Минимальное возможное значение — 1, в противном случае игнорируется. Требуется git>=1.9.1 для правильной работы. | |
| dest обязательный | Путь, куда должен быть развернут репозиторий. Этот параметр обязателен, если clone не установлен на no. | |
| executable (добавлен в 1.4) | Путь к исполняемому файлу git. Если не указано, будет использоваться стандартный механизм для определения путей к двоичным файлам. | |
| force bool |
| Если yes, все изменённые файлы в рабочем репозитории будут удалены. До версии 0.7 это всегда было 'да' и отключить нельзя. До версии 1.9 по умолчанию было `да` |
| key_file (добавлен в 1.5) | Укажите путь к необязательному приватному ключу на целевом хосте для использования при развёртывании. | |
| recursive bool (добавлен в 1.6) |
| если no, репозиторий будет клонирован без опции --recursive, пропуская подмодули. |
| reference (добавлен в 1.4) | Ссылка на репозиторий (см. "git clone --reference ...") | |
| refspec (добавлен в 1.9) | Добавить дополнительную спецификацию ref для получения. Если версия установлена на SHA-1, недоступную ни из одной ветки или тега, эта опция может потребоваться для указания ref, содержащего SHA-1. Использует тот же синтаксис, что и команда 'git fetch'. Пример значения — "refs/meta/config". | |
| remote | По умолчанию: "origin" | Название удалённого репозитория. |
| repo обязательный | Адрес git-репозитория по протоколу git, SSH или HTTP(S). псевдонимы: имя | |
| ssh_opts (добавлен в 1.5) | Создаёт скрипт-оболочку и экспортирует путь как GIT_SSH, который git автоматически использует для переопределения аргументов ssh. Пример значения — "-o StrictHostKeyChecking=no". | |
| track_submodules bool (добавлен в 1.8) |
| если yes, подмодули будут отслеживать последнюю фиксацию в ветке master (или другой ветке, указанной в .gitmodules). Если no, подмодули будут сохранены на версии, указанной в основном проекте. Это эквивалентно указанию флага --remote для git submodule update. |
| umask (добавлен в 2.2) | Значение umask для установки перед развёртыванием или любым другим обслуживанием репозитория. | |
| update bool |
| Если no, не получать новые версии из исходного репозитория.Операции, такие как archive, будут работать с существующим (старым) репозиторием и могут не реагировать на изменения в опциях версии или удалённом репозитории. |
| verify_commit bool (добавлен в 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
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| after строка | успех | последняя фиксация репозитория, полученная во время обновления Пример: 4c020102a9cd6fe908c9a4a326a38f972f63a903 |
| before строка | успех | фиксация перед обновлением репозитория, "null" для нового репозитория Пример: 67c04ebe40a003bda0efb34eacfb93b0cafdf628 |
| remote_url_changed логический | успех | Содержит True или False, указывая, был ли изменён URL удалённого репозитория. Пример: True |
| warnings строка | ошибка | Список предупреждений, если запрошенные функции были недоступны из-за слишком старой версии git. Пример: Ваша версия git слишком старая, чтобы полностью поддерживать аргумент depth. Возвращаемся к полному развёртыванию. |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как ядерный, что означает, что его поддерживает команда Ansible Core. См. Поддержка и сопровождение модулей для получения дополнительной информации.
Список других модулей, также поддерживаемых командой Ansible Core, см. в этом месте.
Поддержка
Для получения дополнительной информации о поддержке этого модуля Red Hat, пожалуйста, обратитесь к этой статье базы знаний
Автор
- Команда Ansible Core
- Майкл ДеХан
Подсказка
Если вы заметите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/git_module.html