Az Ansible másolási modul az Ansible fájlmodulok egyik modulja. Az Ansible copy modul a fájl másolására szolgál az ansible gépről a távoli kiszolgálóra. Az ansible copy modullal különböző dolgokat tehetünk Lássuk, mit tehetünk az ansible copy modullal. Ebben a blogbejegyzésben ansible copy modul példákat fogunk látni, és hogyan másoljuk a fájlokat az ansible masterről a távoli szerverre.
Copy the file with force yes-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
Az ansible gépen lévő devops.txt fájl ebben a példában a távoli szerveren lévő célhelyre lesz másolva. de ha ugyanaz a fájl(azonos névvel) már létezik a távoli szerveren lévő célhelyen, akkor az ansible gépen lévő fájlra fog cserélődni. Nem törődik azzal, hogy a fájl létezik-e vagy sem a távoli helyen. Vakon másolja a fájlt az ansible gépről a távoli szerverre.
- Ansible Fetch module tutorial
alapértelmezés szerint a force igen
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Szóval mindkét fenti kód ugyanúgy működik. A force megemlítése: igen vagy a force eltávolítása: igen ez tőled függ. A jobb megértés érdekében megemlítheti a force: yes.
Másolja a fájlt force no-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Itt nem fogja kényszeríteni. ha a fájl már létezik a célhelyen, akkor nem fogja helyettesíteni a fájlt. Ez azt jelenti, hogy nem kényszerítjük a fájl másolását az ansible gépről a távoli szerverre.
Könyvtár másolása az ansible gépről a távoli célállomásra-Ansible Copy Példák
Tegyük fel, hogy van egy könyvtárunk, melynek neve scripts. Ebben a könyvtárban van két file1 és file2 nevű fájlunk és Linux könyvtárunk, a Linux könyvtárban van két file 3 és file 4 nevű fájlunk.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Most a feladat az, hogy el kell küldenünk vagy másolnunk a Linux könyvtárat a távoli szerverre.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
A fenti kód segítségével elküldhetjük vagy másolhatjuk a Linux könyvtárat az ansible gépről a távoli szerver helyére.
Lásd a src:/user/scripts/linux végén nem említettük a (/) szót, ezért a Linux könyvtárat az ansible gépről a távolira másoljuk.
A kimenet a távoli tmp könyvtárba kerül.
├── tmp└── linux ├── file3 ├── file4
Ha a src végén megemlítjük a (/)-t, akkor a Linux könyvtárban lévő fájlok (file3 és file4) másolódnak a távoli helyre.
lásd src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
a kimenet a távoli tmp könyvtárban
└── tmp ├── file3 ├── file4
Kizárólag a Linux könyvtárban lévő fájlok másolódnak a távoli helyre, ha a forrás végén a (/)-t említjük.
A fájl másolása jogosultságokkal-Ansible másolási példák
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
A fenti kód segítségével másolhatjuk a fájlt különböző jogosultságokkal.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
A fenti példával megegyezően fog működni. Itt az engedélyeket a 0644-nek megfelelő szimbolikus móddal említettük. bármilyen típusú módot használhatunk.
Tartalom másolása távoli kiszolgálóra-Ansible másolás példák
copy:content: "Hello devops"dest: /tmp/devops.txt
Ezzel a modullal tartalmat írhatunk és másolhatunk a távoli kiszolgálóra. Ha a fájl nem létezett a távoli helyen, akkor létrehozza ezt a devops.txt fájlt, és kiírja a tartalmat a devops.txt fájlba. Itt a devops.txt egy fájlnév, amelyet bármilyen fájlnévvel megadhat. Az ansible copy modullal létrehozhatjuk a tartalommal rendelkező fájlt.
Ha többet szeretne tudni az ansible copy-ról,akkor az ansible dokumentációban olvashat.
- https://docs.ansible.com/ansible/2.3/copy_module.html