Spec-Zone.ru › Ansible 2.9

git – Развёртывание программного обеспечения (или файлов) из git-чек-аутов

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Управление git-чек-аутами репозиториев для развёртывания файлов или программного обеспечения.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • git>=1.7.1 (инструмент командной строки)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
accept_hostkey
логический
    Варианты:
  • нет ←
  • да
если yes, убедитесь, что опция ssh "-o StrictHostKeyChecking=no" присутствует.
archive
-
добавлен в 2.4
Укажите путь к файлу архива с расширением. Если указано, создаёт архив указанного формата, содержащий структуру дерева исходного дерева. Разрешенные форматы архивов ["zip", "tar.gz", "tar", "tgz"]
Это позволит клонировать и выполнить git archive из локального каталога, так как не все git-серверы поддерживают git archive.
bare
логический
    Варианты:
  • нет ←
  • да
если yes, репозиторий будет создан как пустой репозиторий, в противном случае это будет стандартный репозиторий с рабочей областью.
clone
логический
    Варианты:
  • нет
  • да ←
Если no, репозиторий не будет клонирован, даже если он не существует локально
depth
-
Создать неполный клон с историей, усечённой до указанного числа или ревизий. Минимально возможное значение 1, в противном случае игнорируется. Требуется git>=1.9.1 для корректной работы.
dest
- / обязательно
Путь, куда должен быть развёрнут репозиторий. Этот параметр обязателен, если clone не установлено на no.
executable
-
Путь к исполняемому файлу git для использования. Если не указан, будет использован стандартный механизм для разрешения путей к бинарным файлам.
force
логический
    Варианты:
  • нет ←
  • да
Если yes, любые изменённые файлы в рабочем репозитории будут удалены. До версии 0.7, этот параметр всегда был 'да' и его нельзя было отключить. До версии 1.9, значение по умолчанию было `да`
gpg_whitelist
список
добавлен в 2.9
Значение по умолчанию:
[]
Список надёжных отпечатков GPG для сравнения с отпечатком GPG-подписанного коммита.
Используется только при verify_commit=yes.
key_file
-
Укажите необязательный путь к файлу с закрытым ключом на целевом хосте для использования при развёртывании.
recursive
логический
    Варианты:
  • нет
  • да ←
Если no, репозиторий будет клонирован без опции --recursive, пропуская подмодули.
reference
-
Репозиторий-ссылка (см. "git clone --reference ...")
refspec
-
Добавить дополнительный 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
-
Создаёт скрипт-обёртку и экспортирует путь как GIT_SSH, который git затем автоматически использует для переопределения аргументов ssh. Пример значения "-o StrictHostKeyChecking=no" (хотя эту опцию лучше настроить через accept_hostkey).
track_submodules
логический
    Варианты:
  • нет ←
  • да
Если yes, подмодули будут отслеживать последнюю ревизию в их основной ветке (или другой ветке, указанной в .gitmodules). Если no, подмодули будут сохранены в ревизии, указанной в основном проекте. Это эквивалентно указанию флага --remote для git submodule update.
umask
-
Значение umask для установки перед клонированием или любой другой деятельностью по управлению репозиторием.
update
логический
    Варианты:
  • нет
  • да ←
Если no, новые ревизии из исходного репозитория не будут получены.
Операции, такие как создание архива, будут работать с существующим (старым) репозиторием и могут не реагировать на изменения в версии или удалённом репозитории.
verify_commit
логический
    Варианты:
  • нет ←
  • да
Если 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: 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. Возвращаемся к полным выгрузкам.


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [preview]
  • Этот модуль поддерживается командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat.

Авторы

  • Команда Ansible Core
  • Michael DeHaan

Подсказка

Если вы заметили какие-либо проблемы в этом руководстве, вы можете изменить этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/git_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API