Esnek olmayan kopyalama modülü, dosyaları ve klasörleri yerel makineden uzak sunuculara kopyalamanıza olanak tanır. Çok yönlü kopyalama birimi. Bununla birlikte, birçok karmaşık görevi gerçekleştirebilirsiniz. Düzenli olarak yapmanız gereken bazı görevlere bir göz atalım.
Dosyaları yerelden uzağa kopyalayın
Çoğu zaman, dosyaları yerel sunuculardan uzak sunuculara kopyalayacaksınız. İşte böyle bir görevi gerçekleştirmek için örnek bir kılavuz.
Ana bilgisayarlar: Web sunucuları
Görevler:
-Ad: Dosyayı uzak bir sunucuya kopyalayın
Kopyala:
kaynak: ~/test.txt
hedef: /tmp
Yukarıdaki örnekte, tüm web sunucuları Envanterimizdeki koleksiyon en iyisidir. kaynak test.txt Yerel makinemizin ana dizinindedir ve hedef uzak makinedeki /tmp klasörüdür.
$ansible-playbook 1_copy_to_remote.yml
Pencere [web sunucuları]
************************************************ ** *************************
bir görev [Gerçekleri Toplama]
************************************************ ** *************************
TAMAM: [172.17.0.3]
bir görev [cevaplayıcı kopya dosya uzak sunucuya]
************************************************ ** *************************
değiştirmek: [172.17.0.3]
Oyun özeti
************************************************ ** *****************************
172.17.0.3: tamam=2değiştirmek=1anlaşılması zor=0Arızalı=0
Playbook’u çalıştırırsak, yukarıdaki gibi sonuçlar görmeliyiz.
Uzak makinedeki varsayılan izinler 0644 olarak ayarlanmıştır:
# ls -alsh testi.txt
0 -rw-rw-r– 1 a_user a_user 0 Nis 20 08:49 test.txt
Bunu, değişiklik parametresini ekleyerek değiştirebilirsiniz:
Ana bilgisayarlar: Web sunucuları
Görevler:
-Ad: Dosyayı uzak bir sunucuya kopyalayın
Kopyala:
kaynak: ~/test.txt
hedef: /tmp
Değişiklik: 0744
Böylece, uzaktan kumandadaki izinleriniz şöyle görünür:
# ls -alsh testi.txt
0 -rwxr – r– 1 a_user a_user 0 20 Nisan 08:54 test.txt
Dizinleri yerelden uzağa kopyala
Dizinleri kopyalamak için iki seçeneğiniz vardır. Dizin adından sonra / koyarsanız, o dizindeki her şey hedef klasöre kopyalanır. / Koymazsanız, önce hedefte dizini oluşturur ve ardından her şeyi içine kopyalar.
Kopyalama modülünü yerel ana klasörümüzde bulunan aşağıdaki dizinle deneyelim:
bir testtir
| – kademeli 1
| “- test1.txt
| – kademeli 2
| – test2.txt
“- test0.txt
Aşağıdaki kodu kullanırsak:
Ana bilgisayarlar: Web sunucuları
Görevler:
-name: Dizini uzak bir sunucuya kopyalayın
Kopyala:
Kaynak: ~/bir testtir
Amaç: /tmp
Sonra uzak sunucuda aşağıdakileri alırız:
tmp/
“- Bir test
| – kademeli 1
| “- test1.txt
| – kademeli 2
| – test2.txt
“- test0.txt
Uzak makinelerdeki dizinler arasında dosya kopyalama
Kırılmaz Kopya, dosyaları aynı uzak makinede bir dizinden diğerine kopyalamanıza olanak tanır. Ancak bunu yalnızca dosyalar için yapabilirsiniz, dizinler için yapamazsınız. kullanmak zorundasın uzak_src Ansible’ın amacınızı bilmesini sağlayan parametre.
Ana bilgisayarlar: Web sunucuları
Görevler:
Ad: Kopyala bir dosya uzak bir sunucudaki dizinler arasında
Kopyala:
kaynak: /tmp/test.txt
Hedef: ~/test.txt
uzak_kaynak: Evet
Yukarıdaki kod kopyalanacak /tmp/test.txt kullanıcının ana dizinine (/Ana sayfa/[username]/).
Birden fazla parametre dosyasını kopyalayın
Dosyalara ayrı parametreler iletebilirsiniz.
Ana bilgisayarlar: Web sunucuları
Görevler:
Ad: Birden çok değişiklik içeren dosyaları kopyala
Kopyala:
Kaynak: “{{item.src}}”
hedef: “{{item.dest}}”
Düzenleme: “{{item.mode}}”
with_elements:
-{kaynak: ‘~/testdir2/test1.txt’, hedef: ‘/tmp/a.txt’, değişiklik: ‘0644’}
-{kaynak: ‘~/testdir2/test2.txt’, hedef: ‘/tmp/b.txt’, değişiklik: ‘0755’}
-{kaynak: ‘~/testdir2/test3.txt’, hedef: ‘/tmp/c.txt’, değişiklik: ‘0644’}
Yukarıdaki örnekte, dosyaları yeniden adlandırıyor ve bunlara ayrı ayrı izinler veriyoruz. Ansible çıktısı şöyle görünür:
$ansible-playbook 4_copy_to_remote_with_multiple_parameters.yml
Pencere [web sunucuları]
************************************************ ** *****************
bir görev [Gerçekleri Toplama]
************************************************ ** *****************
TAMAM: [172.17.0.3]
bir görev [Dosyaları birden çok değişiklikle kopyalayın]
************************************************ ** *****************
değiştirmek: [172.17.0.3] =>(kalem={Ö‘amaç’:You are“/tmp/a.txt”Güneş“kaynak”:You are“~/testdir2/test1.txt”Ve
Ö‘modern’:You are“0644”})
değiştirmek: [172.17.0.3] =>(kalem={Ö‘amaç’:You are“/tmp/b.txt”Güneş“kaynak”:You are“~/testdir2/test2.txt”Ve
Ö‘modern’:You are“0755”})
değiştirmek: [172.17.0.3] =>(kalem={Ö‘amaç’:You are“/tmp/c.txt”Güneş“kaynak”:You are“~/testdir2/test3.txt”Ve
Ö‘modern’:You are“0644”})
Oyun özeti
************************************************ ************************
172.17.0.3: tamam=2değiştirmek=1anlaşılması zor=0Arızalı=0
Uzak sunucularda içerik oluşturun
Doğrudan bir önyükleme dizini dosyasından uzak sunucularda içerik oluşturmak için Çoğaltıcı’yı kullanabilirsiniz. İşte bir örnek:
Ana bilgisayarlar: Web sunucuları
Görevler:
-Ad: Uzak bir sunucuda içerik oluşturmak için uygun bir kopya kullanın
Kopyala:
İçerik: “Merhaba sunucu! \n”
Hedef: /tmp/hello.txt
Budur merhaba.txt “Merhaba Sunucu!” uzak sunucuda. Metin.
# kedi /tmp/hello.txt
merhaba sunucu
çözüm
Ansible Copy, dosyaları sunucular arasında kopyalamanıza yardımcı olan kullanışlı bir modüldür. Bu, yapılandırma görevlerinizi kolaylaştırmalıdır.
Gelecek iş:
Diğer gönderilerimize göz at
[wpcin-random-posts]
İlk Yorumu Siz Yapın