Ansible Copy Module é um dos módulos em módulos de ficheiros no Ansible. O módulo Ansible copy é usado para copiar o arquivo de uma máquina possível para o servidor remoto. Com um módulo de cópia possível você pode fazer várias coisas, deixe-nos ver o que podemos fazer com um módulo de cópia possível. Neste post de blog vamos ver exemplos de módulos de cópia possível e como copiar os arquivos do master ansible para o servidor remoto.
Copiar o arquivo com force yes-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
Neste exemplo o arquivo devops.txt na máquina possível será copiado para o local de destino no servidor remoto. mas se o mesmo arquivo (com o mesmo nome) já existir no local de destino no servidor remoto, ele será substituído pelo arquivo da máquina possível. Ele não cuidará para que o arquivo exista ou não exista em um local remoto. Cegamente ele copiará o arquivo de uma máquina possível para o servidor remoto.
- Tutorial do módulo Fetch possível
por padrão, a força é sim
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Então ambos os códigos acima funcionam como o mesmo. Mencionando força: sim ou removendo força: sim, depende de você. Para melhor compreensão você pode mencionar force: yes.
Copiar o arquivo com force noAnsible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Aqui não vai forçar. se o arquivo já existe no local de destino ele não vai substituir o arquivo. Isso significa que não estamos forçando a copiar o arquivo de uma máquina possível para um servidor remoto.
Copiar um diretório de uma máquina possível para um destino remoto – Exemplos de Cópia Possível
nos deixe assumir que temos um diretório chamado scripts. Neste directório temos dois ficheiros chamados ficheiro1 e ficheiro2 e directório Linux, no directório Linux temos dois ficheiros chamados ficheiro 3 e ficheiro 4.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Agora a tarefa é enviar ou copiar o directório Linux para o servidor remoto.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
Usando o código acima pode enviar ou copiar o directório Linux de uma máquina possível para uma localização de servidor remoto.
Ver no fim do src:/user/scripts/linux que não mencionámos (/) então é por isso que o directório Linux irá copiar de uma máquina possível para o remoto.
A saída no directório tmp remoto.
├── tmp└── linux ├── file3 ├── file4
Se mencionar (/) no fim do src, os ficheiros no directório Linux (ficheiro3 e ficheiro4) irão copiar para o remoto.
ver src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
a saída no directório tmp remoto
└── tmp ├── file3 ├── file4
Apenas os ficheiros no directório Linux irão copiar para a localização remota se mencionar (/) no fim da fonte.
Copie o ficheiro com permissões – Exemplos de cópias possíveis
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
Usando o código acima pode copiar o ficheiro com diferentes permissões.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
Funcionará como o exemplo acima. Aqui mencionamos permissões usando um modo simbólico equivalente a 0644. podemos usar qualquer tipo de modo.
Copy Content to Remote server-Ansible Copy Examples
copy:content: "Hello devops"dest: /tmp/devops.txt
Usando este módulo você pode escrever conteúdo e copiar esse conteúdo para o servidor remoto. Se o arquivo não existir em um local remoto ele irá criar esse arquivo devops.txt e escrever esse conteúdo em devops.txt. Aqui devops.txt é um nome de arquivo que você pode dar qualquer nome de arquivo. Com um módulo de cópia possível, podemos criar o ficheiro com conteúdo.
Se quiser saber mais sobre uma cópia possível, pode consultar em documentação possível.
- https://docs.ansible.com/ansible/2.3/copy_module.html