Ansible copy module jest jednym z modułów w modułach plikowych w Ansible. Moduł Ansible copy służy do kopiowania plików z maszyny ansible na zdalny serwer. Z modułem ansible copy można robić różne rzeczy, zobaczmy co możemy zrobić z modułem ansible copy. W tym wpisie zobaczymy przykłady modułów ansible copy oraz jak skopiować pliki z ansible master na zdalny serwer.
Copy the file with force yes-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
W tym przykładzie plik devops.txt w maszynie ansible zostanie skopiowany do lokalizacji docelowej na zdalnym serwerze. ale jeśli ten sam plik (o tej samej nazwie) już istnieje w lokalizacji docelowej na zdalnym serwerze, zostanie zastąpiony plikiem z maszyny ansible. Nie będzie zwracał uwagi na to, czy plik istnieje, czy nie istnieje w zdalnej lokalizacji. Na ślepo skopiuje plik z maszyny ansible na zdalny serwer.
- Ansible Fetch module tutorial
domyślnie, force jest yes
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Więc oba powyższe kody działają tak samo. Wspomnienie o force: tak lub usunięcie force: tak, to zależy od ciebie. Dla lepszego zrozumienia możesz wspomnieć siłę: tak.
Kopiuj plik z siłą nie-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Tutaj nie będzie wymuszać. jeśli plik już istnieje w lokalizacji docelowej nie zastąpi pliku. Oznacza to, że nie wymuszamy kopiowania pliku z maszyny ansible na zdalny serwer.
Kopiowanie katalogu z maszyny ansible do zdalnego miejsca docelowego-Ansible Copy Przykłady
Załóżmy, że mamy katalog o nazwie scripts. W tym katalogu mamy dwa pliki o nazwie plik1 i plik2 oraz katalog Linux, w katalogu Linux mamy dwa pliki o nazwie plik 3 i plik 4.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Teraz zadanie jest musimy wysłać lub skopiować katalog Linux do zdalnego serwera.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
Używając powyższego kodu możesz wysłać lub skopiować katalog Linux z maszyny ansible do zdalnej lokalizacji serwera.
Zobacz na końcu src:/user/scripts/linux nie wspomnieliśmy (/), więc dlatego katalog Linux zostanie skopiowany z maszyny ansible do zdalnego.
Wyjście w zdalnym katalogu tmp.
├── tmp└── linux ├── file3 ├── file4
Jeśli wspomnisz (/) na końcu src, pliki w katalogu Linux (file3 i file4) zostaną skopiowane do zdalnego.
patrz src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
dane wyjściowe w zdalnym katalogu tmp
└── tmp ├── file3 ├── file4
Tylko pliki w katalogu Linux zostaną skopiowane do zdalnej lokalizacji, jeśli wspomnisz (/) na końcu źródła.
Kopiuj plik z uprawnieniami-Ansible Copy Examples
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
Przez użycie powyższego kodu możesz skopiować plik z różnymi uprawnieniami.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
Będzie działać jak ten sam przykład co powyżej. Tutaj wspomnieliśmy o uprawnieniach używając symbolicznego trybu równoważnego 0644. możemy użyć dowolnego typu trybu.
Kopiowanie zawartości do zdalnego serwera-Ansible Copy Examples
copy:content: "Hello devops"dest: /tmp/devops.txt
Przez użycie tego modułu możesz pisać zawartość i kopiować tę zawartość do zdalnego serwera. Jeśli plik nie istnieje w zdalnej lokalizacji, utworzy on plik devops.txt i zapisze tę zawartość do devops.txt. Tutaj devops.txt jest nazwą pliku, której możesz nadać dowolną nazwę. Z modułem ansible copy, możemy utworzyć plik z zawartością.
Jeśli chcesz wiedzieć więcej o ansible copy, możesz odwołać się do dokumentacji ansible.
- https://docs.ansible.com/ansible/2.3/copy_module.html