Příklady kopírování Ansible Modul kopírování

Modul kopírování Ansible je jedním z modulů v souborových modulech Ansible. Modul Ansible copy slouží ke kopírování souboru ze stroje ansible na vzdálený server. Pomocí modulu ansible copy můžete dělat různé věci, podívejme se, co můžeme pomocí modulu ansible copy dělat. V tomto příspěvku uvidíme příklady modulů ansible copy a jak zkopírovat soubory z hlavního počítače ansible na vzdálený server.

Kopírování souboru s vynucením ano – modul ansible copy

tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp

V tomto příkladu bude soubor devops.txt v počítači ansible zkopírován do cílového umístění na vzdáleném serveru. ale pokud stejný soubor (se stejným názvem) již existuje v cílovém umístění na vzdáleném serveru, bude nahrazen souborem z počítače ansible. Nebude se starat o to, zda soubor existuje nebo neexistuje ve vzdáleném umístění. Slepě zkopíruje soubor ze stroje ansible na vzdálený server.

  • Ansible Fetch module tutorial

ve výchozím nastavení je force yes

tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes

Oba výše uvedené kódy tedy fungují stejně. Zmínění force: ano nebo odstranění force: ano to záleží na vás. Pro lepší pochopení můžete zmínit force: yes.

Kopírování souboru s force no-Ansible Copy Module

tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no

Tady to nebude force. pokud soubor již existuje v cílovém umístění, nebude soubor nahrazen. To znamená, že nevynucujeme kopírování souboru ze stroje ansible na vzdálený server.

Kopírování adresáře ze stroje ansible na vzdálený cílový server-Příklady kopírování Ansible

Předpokládejme, že máme adresář s názvem scripts. V tomto adresáři máme dva soubory nazvané soubor1 a soubor2 a adresář Linux, v adresáři Linux máme dva soubory nazvané soubor 3 a soubor 4.

scripts├── file1├── file2└── linux ├── file3 ├── file4

Nyní je naším úkolem odeslat nebo zkopírovat adresář Linux na vzdálený server.

tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp

Pomocí výše uvedeného kódu můžete odeslat nebo zkopírovat adresář Linux ze stroje ansible na vzdálené umístění serveru.

Všimněte si, že na konci src:/user/scripts/linux jsme neuvedli (/), takže proto se adresář Linux zkopíruje ze stroje ansible na vzdálený.

Výstup ve vzdáleném adresáři tmp.

├── tmp└── linux ├── file3 ├── file4

Pokud na konci src uvedeme (/), budou se do vzdáleného umístění kopírovat soubory v adresáři Linux (soubor3 a soubor4).

viz src:/user/scripts/linux/

tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp

výstup ve vzdáleném adresáři tmp

└── tmp ├── file3 ├── file4

Pokud na konci src uvedeme (/), budou se do vzdáleného umístění kopírovat pouze soubory v adresáři Linux.

Kopírování souboru s oprávněními-Příklady kopírování pomocí Ansible

- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644

Pomocí výše uvedeného kódu můžete kopírovat soubor s různými oprávněními.

- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"

Bude to fungovat jako stejný příklad jako výše. Zde jsme zmínili oprávnění pomocí symbolického režimu odpovídajícího 0644. můžeme použít jakýkoli typ režimu.

Kopírování obsahu na vzdálený server – příklady kopírování

copy:content: "Hello devops"dest: /tmp/devops.txt

Pomocí tohoto modulu můžete zapisovat obsah a kopírovat tento obsah na vzdálený server. Pokud soubor ve vzdáleném umístění dosud neexistoval, vytvoří tento soubor devops.txt a zapíše tento obsah do souboru devops.txt. Zde devops.txt je název souboru, kterému můžete dát libovolný název. Pomocí modulu ansible copy můžeme vytvořit soubor s obsahem.

Pokud chcete vědět více o modulu ansible copy,můžete se podívat do dokumentace modulu ansible.

  • https://docs.ansible.com/ansible/2.3/copy_module.html

.

Napsat komentář