git - Развёртывание программного обеспечения (или файлов) из git-схематизаций
- Описание
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Описание
- Управление git-схематизациями репозиториев для развёртывания файлов или программного обеспечения.
Требования (к хосту, на котором выполняется модуль)
- git>=1.7.1 (инструмент командной строки)
Параметры
| параметр | обязателен | по умолчанию | значения | комментарии |
|---|---|---|---|---|
| accept_hostkey (добавлен в 1.5)
| нет | нет |
| если yes, убедитесь, что "-o StrictHostKeyChecking=no" присутствует в качестве опций ssh. |
| archive (добавлен в 2.4)
| нет | Укажите путь к файлу архива с расширением. Если указано, создаётся архив указанного формата, содержащий структуру дерева для исходного дерева. Разрешенные форматы архивов ["zip", "tar.gz", "tar", "tgz"] | ||
| bare (добавлен в 1.4)
| нет | нет |
| если yes, репозиторий будет создан как пустой, в противном случае это будет стандартный репозиторий с рабочим пространством. |
| clone (добавлен в 1.9)
| нет | да |
| Если no, не клонировать репозиторий, если он не существует локально |
| depth | нет | Создать мелкий клон с историей, усечённой до указанного числа или ревизий. Минимально возможное значение - 1, в противном случае игнорируется. Требуется git>=1.9.1 для корректной работы. | ||
| dest | да | Путь, куда должен быть развернут репозиторий. Этот параметр обязателен, если clone не установлен на no. | ||
| executable (добавлен в 1.4)
| нет | Путь к исполняемому файлу git для использования. Если не указан, будет использоваться стандартный механизм разрешения путей к бинарным файлам. | ||
| force | нет | нет |
| Если yes, все изменённые файлы в рабочем репозитории будут удалены. До версии 0.7 это всегда было 'да' и не могло быть отключено. До версии 1.9 по умолчанию было `да` |
| key_file (добавлен в 1.5)
| нет | None | Укажите необязательный файл с закрытым ключом для использования при развертывании. | |
| recursive (добавлен в 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). псевдонимы: имя | ||
| ssh_opts (добавлен в 1.5)
| нет | None | Создаёт скрипт-оболочку и экспортирует путь как GIT_SSH, который git затем автоматически использует для переопределения аргументов ssh. Пример значения: "-o StrictHostKeyChecking=no" | |
| track_submodules (добавлен в 1.8)
| нет | нет |
| если yes, подмодули будут отслеживать последнюю коммитацию в их ветке master (или другой ветке, указанной в .gitmodules). Если no, подмодули будут сохранены в ревизии, указанной в основном проекте. Это эквивалентно указанию флага --remote для git submodule update. |
| umask (добавлен в 2.2)
| нет | Установить umask перед любыми развертываниями или другими операциями с репозиторием. | ||
| update | нет | да |
| Если no, не извлекать новые ревизии из исходного репозиторияОперации, такие как создание архива, будут работать с существующим (старым) репозиторием и могут не реагировать на изменения версии параметров или удалённого репозитория. |
| verify_commit (добавлен в 2.0)
| нет | нет |
| если yes, при клонировании или развертывании version проверять подпись подписанной GPG-коммита. Для этого требуется git версия>=2.1.0. Коммита ДОЛЖНА быть подписана, и открытый ключ ДОЛЖЕН быть в хранилище GPG. |
| version | нет | HEAD | Какую версию репозитория развернуть. Это может быть строка HEAD, имя ветки, имя тега. Также может быть SHA-1 хэш, в этом случае refspec необходимо указать, если заданная ревизия ещё недоступна. |
Примеры
# 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. Возвращается к полному развертыванию. |
Примечания
Примечание
- Если задача зависает, сначала проверьте, доступен ли удалённый хост в
known_hosts. SSH запросит у пользователя разрешения на первый контакт с удалённым хостом. Чтобы избежать этого запроса, одним из решений является использование параметра accept_hostkey. Другое решение — добавить открытый ключ удалённого хоста в/etc/ssh/ssh_known_hostsперед вызовом модуля git, выполнив следующую команду: ssh-keyscan -H remote_host.com >> /etc/ssh/ssh_known_hosts.
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантированно будет совместим с предыдущими версиями.
Информация о техническом обслуживании
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если вы заинтересованы в этом, пожалуйста, прочтите Информацию о сообществе и участии в разработке, Тестирование 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.4/git_module.html