Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев, вы можете использовать короткое имя модуля git даже без указания ключевого слова collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.

Новое в версии 0.0.1: из ansible.builtin

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

Описание

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

Требования

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
accept_hostkey
boolean
добавлен в 1.5 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Если yes, убедитесь, что опция ssh "-o StrictHostKeyChecking=no" присутствует.
archive
путь
добавлен в 2.4 версии ansible.builtin
Укажите путь к файлу архива с расширением. Если указано, создаёт архив указанного формата, содержащий структуру дерева для исходного дерева. Разрешенные форматы архивов ["zip", "tar.gz", "tar", "tgz"].
Это позволит клонировать и выполнить git archive из локального каталога, так как не все серверы git поддерживают git archive.
archive_prefix
строка
добавлен в 2.10 версии ansible.builtin
Укажите префикс, который нужно добавить к каждому пути к файлу в архиве. Требуется, чтобы был указан параметр archive.
bare
boolean
добавлен в 1.4 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Если yes, репозиторий будет создан как bare repo, иначе это будет стандартный репозиторий с рабочим каталогом.
clone
boolean
добавлен в 1.9 версии ansible.builtin
    Варианты:
  • нет
  • да ←
Если no, не клонировать репозиторий, даже если он не существует локально.
depth
целое число
добавлен в 1.2 версии ansible.builtin
Создать неполную копию с историей, укороченной до указанного числа ревизий. Минимальное значение равно 1, иначе игнорируется. Для корректной работы требуется git>=1.9.1.
dest
путь / обязательный
Путь к тому месту, где должен быть развернут репозиторий. Это эквивалентно git clone [repo_url] [directory]. Имя репозитория, указанное в repo, не добавляется к этому пути, и целевой каталог должен быть пустым. Этот параметр обязателен, если параметр clone не no.
executable
путь
добавлен в 1.4 версии ansible.builtin
Путь к исполняемому файлу git для использования. Если не указан, будет использоваться стандартный механизм для разрешения путей к бинарным файлам.
force
boolean
добавлен в 0.7 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Если yes, любые изменённые файлы в рабочем репозитории будут отброшены. До версии 0.7 этот параметр всегда был 'да' и не мог быть отключён. До версии 1.9, значение по умолчанию было `да`.
gpg_whitelist
список / элементы=строка
добавлен в 2.9 версии ansible.builtin
Значение по умолчанию:
[]
Список надёжных отпечатков GPG для сравнения с отпечатком GPG-подписанного коммита.
Используется только когда verify_commit=да.
Использование этой функции требует Git 2.6+ из-за зависимости от флага git --raw для verify-commit и verify-tag.
key_file
путь
добавлен в 1.5 версии ansible.builtin
Укажите путь к необязательному файлу приватного ключа на целевом хосте для использования при развёртывании.
recursive
boolean
добавлен в 1.6 версии ansible.builtin
    Варианты:
  • нет
  • да ←
Если no, репозиторий будет клонирован без опции --recursive, опуская подмодули.
reference
строка
добавлен в 1.4 версии ansible.builtin
Ссылка на репозиторий (см. "git clone --reference ...").
refspec
строка
добавлен в 1.9 версии ansible.builtin
Добавление дополнительной refspec для извлечения. Если версия задана как SHA-1, недоступная ни с какой ветки или тегом, этот параметр может понадобиться для указания ref, содержащей SHA-1. Используется тот же синтаксис, что и в команде git fetch . Пример значения: "refs/meta/config".
remote
строка
Значение по умолчанию:
"origin"
Имя удалённого репозитория.
repo
строка / обязательный
Адрес git репозитория по протоколу git, SSH или HTTP(S).

псевдонимы: name
separate_git_dir
путь
добавлен в 2.7 версии ansible.builtin
Путь для размещения клонированного репозитория. Если указан, репозиторий Git может быть отделён от рабочего каталога.
single_branch
boolean
добавлен в 2.11 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Клонировать только историю, ведущую к вершине указанной ветки.
ssh_opts
строка
добавлен в 1.5 версии ansible.builtin
Создаёт скрипт-оболочку и экспортирует путь как GIT_SSH, который git затем автоматически использует для переопределения аргументов ssh. Пример значения: "-o StrictHostKeyChecking=no" (хотя эту конкретную опцию лучше задать с помощью accept_hostkey).
track_submodules
boolean
добавлен в 1.8 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Если yes, подмодули будут отслеживать последний коммит в их основной ветке (или другой ветке, указанной в .gitmodules). Если no, подмодули будут сохранены в ревизии, указанной в основном проекте. Это эквивалентно указанию флага --remote для git submodule update.
umask
raw
добавлен в 2.2 версии ansible.builtin
Значение umask, устанавливаемое перед выполнением любых действий по клонированию или другим операциям с репозиторием.
update
boolean
добавлен в 1.2 версии ansible.builtin
    Варианты:
  • нет
  • да ←
Если no, не получать новые ревизии из исходного репозитория.
Операции типа archive будут работать с существующим (старым) репозиторием и могут не реагировать на изменения в параметрах version или remote.
verify_commit
boolean
добавлен в 2.0 версии ansible.builtin
    Варианты:
  • нет ←
  • да
Если yes, при клонировании или развертывании версии проверять подпись 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.
  • Поддерживает check_mode.

Примеры

- name: Git checkout
  ansible.builtin.git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    version: release-0.22

- name: Read-write git checkout from github
  ansible.builtin.git:
    repo: git@github.com:mylogin/hello.git
    dest: /home/mylogin/hello

- name: Just ensuring the repo checkout exists
  ansible.builtin.git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    update: no

- name: Just get information about the repository whether or not it has already been cloned locally
  ansible.builtin.git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    clone: no
    update: no

- name: Checkout a github repo and use refspec to fetch all pull requests
  ansible.builtin.git:
    repo: https://github.com/ansible/ansible-examples.git
    dest: /src/ansible-examples
    refspec: '+refs/pull/*:refs/heads/*'

- name: Create git archive from repo
  ansible.builtin.git:
    repo: https://github.com/ansible/ansible-examples.git
    dest: /src/ansible-examples
    archive: /tmp/ansible-examples.zip

- name: Clone a repo with separate git directory
  ansible.builtin.git:
    repo: https://github.com/ansible/ansible-examples.git
    dest: /src/ansible-examples
    separate_git_dir: /src/ansible-examples.git

- name: Example clone of a single branch
  ansible.builtin.git:
    single_branch: yes
    branch: master

- name: Avoid hanging when http(s) password is missing
  ansible.builtin.git:
    repo: https://github.com/ansible/could-be-a-private-repo
    dest: /src/from-private-repo
  environment:
    GIT_TERMINAL_PROMPT: 0 # reports "terminal prompts disabled" on missing password
    # or GIT_ASKPASS: /bin/true # for git before version 2.3.0, reports "Authentication failed" on missing password

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
after
string
успех
Последняя ревизия коммита репозитория, полученная во время обновления.

Пример:
4c020102a9cd6fe908c9a4a326a38f972f63a903
before
string
успех
Ревизия коммита перед обновлением репозитория, «null» для нового репозитория.

Пример:
67c04ebe40a003bda0efb34eacfb93b0cafdf628
git_dir_before
string
успех
Содержит исходный путь к каталогу .git, если он был изменён.

Пример:
/path/to/old/git/dir
git_dir_now
string
успех
Содержит новый путь к каталогу .git, если он был изменён.

Пример:
/path/to/new/git/dir
remote_url_changed
boolean
успех
Содержит True или False, указывающие на то, был ли изменён удалённый URL.

Пример:
True
warnings
string
ошибка
Список предупреждений, если запрошенные функции были недоступны из-за слишком старой версии git.

Пример:
Версия git слишком старая, чтобы полностью поддерживать аргумент глубины. Возвращается к полным копиям.


Авторы

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

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

Spec-Zone.ru

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