Il modulo di copia Ansible è uno dei moduli dei moduli file in Ansible. Il modulo di copia di Ansible è usato per copiare il file dalla macchina Ansible al server remoto. Con il modulo di copia di Ansible si possono fare varie cose, vediamo cosa possiamo fare con il modulo di copia di Ansible. In questo post del blog vedremo esempi di moduli di copia ansible e come copiare i file dal master ansible al server remoto.
Copiare il file con forza sì-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
In questo esempio il file devops.txt nella macchina ansible sarà copiato nella posizione di destinazione nel server remoto. ma se lo stesso file (con lo stesso nome) esiste già nella posizione di destinazione nel server remoto, sarà sostituito con il file dalla macchina ansible. Non si prenderà cura se il file esiste o non esiste in una posizione remota. Ciecamente copierà il file dalla macchina ansible al server remoto.
- Ansible Fetch module tutorial
per default, force è yes
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Quindi entrambi i codici di cui sopra funzionano allo stesso modo. Menzionare la forza: sì o rimuovere la forza: sì, dipende da voi. Per una migliore comprensione puoi menzionare force: yes.
Copia il file con force no-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Qui non forzerà. se il file esiste già nella posizione di destinazione non sostituirà il file. Questo significa che non stiamo forzando la copia del file dalla macchina ansible al server remoto.
Copia una directory dalla macchina ansible alla destinazione remota-Ansible Copy Examples
assumiamo di avere una directory chiamata scripts. In questa directory abbiamo due file chiamati file1 e file2 e la directory Linux, nella directory Linux abbiamo due file chiamati file 3 e file 4.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Ora il compito è quello di inviare o copiare la directory Linux al server remoto.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
Utilizzando il codice di cui sopra è possibile inviare o copiare la directory Linux dalla macchina ansible a una posizione remota del server.
Vedi alla fine di src:/user/scripts/linux non abbiamo menzionato (/) quindi è per questo che la directory Linux verrà copiata dalla macchina ansible al remoto.
L’output nella directory tmp remota.
├── tmp└── linux ├── file3 ├── file4
Se menzioni (/) alla fine di src, i file nella directory Linux (file3 e file4) saranno copiati in remoto.
vedi src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
l’output nella directory tmp remota
└── tmp ├── file3 ├── file4
Solo i file nella directory Linux saranno copiati in remoto se menzioni (/) alla fine della sorgente.
Copia il file con i permessi-Ansible Copy Examples
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
Utilizzando il codice di cui sopra è possibile copiare il file con permessi diversi.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
Funziona come lo stesso esempio di cui sopra. Qui abbiamo menzionato i permessi usando una modalità simbolica equivalente a 0644. possiamo usare qualsiasi tipo di modalità.
Copia del contenuto sul server remoto-Ansible Copy Examples
copy:content: "Hello devops"dest: /tmp/devops.txt
Utilizzando questo modulo è possibile scrivere il contenuto e copiarlo sul server remoto. Se il file non è esistito in una posizione remota creerà quel file devops.txt e scriverà quel contenuto in devops.txt. Qui devops.txt è un nome di file a cui potete dare qualsiasi nome di file. Con il modulo ansible copy, possiamo creare il file con il contenuto.
Se volete sapere di più su ansible copy, potete fare riferimento alla documentazione ansible.
- https://docs.ansible.com/ansible/2.3/copy_module.html