Ansible Copy
Ansible tarjoaa toiminnallisuuden tiedostojen ja hakemistojen kopioimiseen copy- ja fetch-moduulien avulla. Kopiointimoduuli on monipuolinen.
Kopiointimoduulin avulla voidaan kopioida tiedostoja ja kansioita paikalliselta koneelta etäpalvelimille. Ja noutomoduulilla kopioidaan tietoja etäkoneelta paikalliseen koneeseen.
Jos haluat kopioida tiedostoja sen jälkeen, kun ne on korvattu muuttujilla, kuten konfigurointitiedostot, joissa on IP-muutoksia, tai voit käyttää myös mallimoduulia. Voit suorittaa monia monimutkaisia tehtäviä tämän moduulin avulla.
Tiedostojen kopioiminen paikalliselta koneelta etäkoneelle
Kopiointimoduulia käytetään src-parametrissa asetetun tiedoston tarkistamiseen paikallisella koneella. Ja sitten se kopioi tiedoston destpath-parametrissa määritettyyn etäkoneen polkuun.
Alla olevassa esimerkissä kopioimme paikallisen koneen home-hakemistossa olevan sample.txt-tiedoston määränpäähän, joka on etäpalvelimen /tmp-hakemisto. niin kauan kuin emme määritä tiedostolle mitään käyttöoikeutta, etätiedoston oletusoikeudeksi asetetaan -rw-rw-r-r-(0664).
Tapaus 1: Jos tiedosto on jo olemassa etäpalvelimella, mutta lähdetiedoston sisältö on erilainen, kohdetiedostoa muutetaan. Voit hallita tätä asettamalla force-parametrin. Oletusarvona on yes. Se siis muuttaa tiedostoa oletusarvoisesti.
Jos et halua, että tiedostoa muutetaan, jos lähdetiedosto on erilainen, voit asettaa sen arvoksi Ei. Seuraava tehtävä kopioi tiedoston, jos tiedostoa ei ole olemassa etäpalvelimella.
Tapaus 2: Jos tiedostoa ei löytynyt paikalliselta koneelta, Ansible heittää virheilmoituksen.
Esimerkiksi: fatal: : FAILED!=> {”changed”: false, ”failed”: true, ”msg”: ”unable to find ’~/sample.txt’ in expected paths.”}
Kansioiden kopioiminen paikallisesta etäkäyttöön
Voit myös kopioida kansioita tai hakemistoja Ansiblen kopiointimoduulilla. Jos ’src’-polku on hakemisto, se kopioidaan rekursiivisesti. Tai koko hakemisto kopioidaan.
Tälle tehtävälle on kaksi eri variaatiota. Riippuen siitä, onko ’src’-polun päätepisteessä ’/’-merkki vai ei.
Ensimmäinen tapa luo etäpalvelimelle hakemiston, jonka nimi on asetettu src-parametrissa. Sitten se kopioi ja liittää lähdekansion sisällön tuohon hakemistoon.
Jos haluat tämän käyttäytymisen, se ei anna ’/’-merkkiä polun perään src-parametrissa.
Alhaalla olevassa esimerkissä se luo ensin copy_dir_ex-nimisen hakemiston etäpalvelimen /tmp-kansioon.
Tiedostojen kopioiminen hakemistojen välillä etäkoneella
Ansible copy mahdollistaa tiedostojen kopioinnin hakemistosta toiseen samalla etäkoneella. Tämä koskee kuitenkin vain tiedostoja, ei hakemistoja. Voit käyttää parametria remote_src kertoaksesi Ansibelle aikeesi.
Alla oleva koodi kopioi tiedoston /tmp/test.txt käyttäjän kotihakemistoon (/home//).