Implantar aplicativo do repositório git local

Implantar aplicativo do repositório git local

Esta é uma questão dupla.

Em cenários onde o repositório git não é acessível publicamente, posso implantar de uma máquina local (que também executa Ansible) para um host de remoção usando a cópia local do repositório no meu disco rígido (ou uma cópia no servidor mestre, por exemplo )?

Se a resposta à pergunta anterior for sim, o módulo git é utilizado para esse fim?

EDITAR:

O que eu tentei até agora:

A estrutura dir é a seguinte:

repo/
|-.git/
|-deploy/
| |-inventory
| |-roles/
| | \-app/
| |   \-main.yml
| \-vagrant.yml
\-src/

O manual contém:

- name: Clone local application
  git: repo={{ inventory_dir }}/../
       dest=/home/{{ application_name }}/code

Implantar isso em uma caixa vagrant via SSH resulta em:

fatal: [vagrant]: FAILED! => {
  "changed": false, 
  "cmd": "/usr/bin/git clone --origin origin path/to/repo", 
  "failed": true, 
  "msg": "Cloning into '/home/app/code'...\nfatal: 
  'path/to/repo' does not appear to be a git repository\nfatal: 
  Could not read from remote repository.\n\nPlease make sure you 
  have the correct access rights\nand the repository exists.", 
  ...}

Responder1

O módulo Ansible gitusa gitexecutável nativo para executar suas ações, então você precisa proceder como faria com operações manuais.

  • Monte o disco que contém o repositório Git na máquina de destino.

    Isso é facilmente alcançável com o Vagrant, se você mantiver o repositório no diretório que contém Vagrantfile(isso pode ser diferente do seu cenário - não tenho certeza do que você quer dizer com vagrant.yml).

    O Vagrant monta este diretório por padrão /vagrantna máquina virtual, então para clonar um repositório você usaria o gitmódulo padrão:

    - git:
        repo: /vagrant/path/to/source/repository
        dest: /path/to/destination
    

    Ele clonará o repositório para /path/to/destination/repository.

  • Usar Ansiblesynchronizemódulopara enviar o repositório para a máquina de destino. Se o único motivo para a clonagem for "implantar o aplicativo" sem retornar ao repositório original, isso será suficiente.

  • Finalmente você pode compartilhar o repositório usando qualquer um dos protocolos suportados pelo Git, como SSH, HTTP, HTTPS, FTP, FTPS, rsync; ou monte o diretório com NFS (isso é equivalente ao primeiro método).

informação relacionada