Ansible copy module on yksi Ansiblen tiedostomoduulien moduuleista. Ansible-kopiointimoduulia käytetään tiedoston kopioimiseen ansible-koneelta etäpalvelimelle. Ansible-kopiointimoduulilla voi tehdä erilaisia asioita Katsotaanpa, mitä voimme tehdä Ansible-kopiointimoduulilla. Tässä blogikirjoituksessa näemme ansible-kopiointimoduulien esimerkkejä ja miten kopioida tiedostoja ansible-masterista etäpalvelimelle.
Kopioi tiedosto pakolla kyllä-Ansible-kopiointimoduuli
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
Tässä esimerkissä ansible-koneessa oleva devops.txt-tiedosto kopioidaan kohdepaikkaan etäpalvelimella. mutta jos sama tiedosto (samalla nimellä) on jo olemassa kohdepaikkaan etäpalvelimella, se korvataan ansible-koneesta tulevalla tiedostolla. Se ei välitä siitä, onko tiedosto olemassa tai ei ole olemassa etäsijainnissa. Sokkona se kopioi tiedoston ansible-koneelta etäpalvelimelle.
- Ansible Fetch -moduulin opetusohjelma
oletusarvoisesti force on yes
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Kumpikin yllä oleva koodi toimii siis samalla tavalla. Mainitsemalla force: kyllä tai poistamalla force: kyllä se riippuu sinusta. Paremman ymmärryksen vuoksi voit mainita force: yes.
Copy the file with force no-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Tässä se ei pakota. jos tiedosto on jo olemassa määränpäässä, se ei korvaa tiedostoa. Tämä tarkoittaa, että emme pakota kopioimaan tiedostoa ansible-koneelta etäpalvelimelle.
Kopioi hakemisto ansible-koneelta etäsijaintiin-Ansible Copy Esimerkkejä
oletetaan, että meillä on hakemisto nimeltä scripts. Tässä hakemistossa meillä on kaksi tiedostoa nimeltään file1 ja file2 ja Linux-hakemisto, Linux-hakemistossa meillä on kaksi tiedostoa nimeltään file 3 ja file 4.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Jatkossa tehtävämme on lähettää tai kopioida Linux-hakemisto etäpalvelimelle.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
Ylläolevan koodin avulla voit lähettää tai kopioida Linux-hakemiston ansible-koneesta etäpalvelimen sijaintiin.
Katsokaa, että src:/user/scripts/linux-kohdan lopussa emme ole maininneet (/), joten siksi Linux-hakemisto kopioidaan ansible-koneesta etäpalvelimelle.
Tulostus etäpalvelimen tmp-hakemistoon.
├── tmp└── linux ├── file3 ├── file4
Jos mainitset (/) src:n lopussa, Linux-hakemistossa olevat tiedostot (tiedosto3 ja tiedosto4) kopioidaan etäkäyttöön.
katso src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
Tulostus etäkäytön tmp-hakemistossa
└── tmp ├── file3 ├── file4
Vain Linux-hakemistossa olevat tiedostot kopioidaan etäkäytön sijaintipaikkaan, jos mainitsit lähteen lopussa mainitsemalla (/).
Kopioi tiedosto käyttöoikeuksilla-Ansible Copy Esimerkkejä
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
Yllä olevalla koodilla voit kopioida tiedoston eri käyttöoikeuksilla.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
Se toimii kuten sama esimerkki kuin yllä. Tässä mainittiin käyttöoikeudet käyttämällä symbolista tilaa, joka vastaa 0644. Voimme käyttää mitä tahansa tilaa.
Sisällön kopiointi etäpalvelimelle-Ansible Copy Esimerkkejä
copy:content: "Hello devops"dest: /tmp/devops.txt
Käyttämällä tätä moduulia voit kirjoittaa sisältöä ja kopioida sen etäpalvelimelle. Jos tiedostoa ei ole ollut olemassa etäsijainnissa, se luo kyseisen devops.txt-tiedoston ja kirjoittaa sisällön devops.txt-tiedostoon. Tässä devops.txt on tiedostonimi, jonka voit antaa millä tahansa tiedostonimellä. Ansible copy -moduulin avulla voimme luoda tiedoston sisällön.
Jos haluat tietää lisää ansible copy -moduulista, voit tutustua ansiblen dokumentaatioon.
- https://docs.ansible.com/ansible/2.3/copy_module.html