Ansible, modern dünyada otomasyon görevlerini gerçekleştirmek için basit, sezgisel ve güçlü araçlar sunan mevcut en iyi otomasyon araçlarından biridir.
Çoğu otomasyon görevi için, özellikle çeşitli araçlar ve uygulamalar, yedeklemeler ve geri yüklemeler kurarken dizinler oluşturmanız gerekecektir. Bu görevleri otomatik bir komut dosyası kullanarak gerçekleştirebilmenize rağmen, Ansible daha iyi işlevsellik sağlayarak belirtilen ana bilgisayarlarda dizinler oluşturmanıza olanak tanır.
Bu öğretici, belirtilen ana bilgisayarlar için dizin izinlerini oluşturmak, kaldırmak ve değiştirmek için Ansible dosya modülünün nasıl kullanılacağını gösterir.
Ansible'da Dizin Nasıl Oluşturulur
Ansible'da bir dizin oluşturmak için aşağıdaki yöntemlerden biri kullanılabilir:
- Komut modülü ile ham bir Ansible komutu
- Ansible çalışma kitabında bir dosya modülü
Komut modülünü kullanarak Ansible'da bir dizin oluşturmak için aşağıda gösterilen komutu girin:
$ ansible all -m komutu -a "mkdir ~/backups"Yukarıdaki komutu girdikten sonra aşağıda gösterilen çıktıyı almalısınız:
'/home/user/ anahtarı için parola girin.ssh/id_rsa':[UYARI]: 'mkdir' çalıştırmak yerine dosya modülünü durum=dizin ile kullanmayı düşünün. Dosya yetersiz olduğu için komut kullanmanız gerekiyorsa, bu komut görevine 'warn: false' ekleyebilir veya ansible'da 'command_warnings=False' ayarını yapabilirsiniz.Bu mesajdan kurtulmak için cfg.
35.222.210.12 | DEĞİŞTİ | rc=0 >>
/etc/ansible/hosts içindeki Ansible ana bilgisayar envanterinizin uzak ana bilgisayarlarınız hakkında doğru bilgileri içerdiğini doğrulayın.
Komut modülünün tek bir Ansible ana bilgisayarında kullanımı basit olsa da, farklı dizinlere ve görevlere sahip birden çok ana bilgisayarla uğraşırken çok verimsiz hale gelir.
Bu dezavantajı gidermek için Ansible dosya modülünü kullanacağız ve kullanmak istediğimiz ana bilgisayarları ve oluşturmak istediğimiz dizinleri içeren bir oyun kitabı oluşturacağız.
NOT: Dosya modülü, Ansible'da tek bir komut olarak da kullanılabilir, ancak komut modülüne çok benzer şekilde çalışır.
Ansible çalışma kitabını kullanmak için bir YAML dosyası oluşturun ve bir dizin oluşturmak için aşağıdaki girişleri girin:
- ana bilgisayarlar: tüm görevler:- isim: Ansible dosya modülü dizin oluştur
dosya:
yol: ~/yedekler
durum: dizin
Dosyayı kaydedin ve dizinleri oluşturmak için ansible-playbook'u kullanın:
ansible-playbook mkdir.ymlBu, eylemlerin belirtilen oynatma kitabı dosyası kullanılarak başarıyla gerçekleştirildiğini gösteren aşağıdaki gibi bir çıktı üretmelidir.
Hepsini Oynat] ********************************************** ******************************************************* *************GÖREV [Gerçekleri Toplama] ************************************************** ************************************************************ **
'/home/user/ anahtarı için parola girin.ssh/id_rsa':
tamam: [35.222.210.12]
GÖREV [Ansible dosya modülü dizin oluştur] ********************************************* *****************************************
tamam: [35.222.210.12]
OYUN ÖZETİ ******************************************************* ******************************************************* ***********
35.222.210.12 : tamam=2 değişti=0 ulaşılamaz=0 başarısız=0 atlandı=0 kurtarıldı=0 yoksayıldı=0
Öğelerle Birden Çok Dizin Nasıl Oluşturulur
Ansible playbook'lar ayrıca YAML dosyasındaki with_items ifadesini kullanarak birden çok dizin oluşturmanıza da olanak tanır.
Örneğin, üç hizmet olan MySQL, depo ve yapılandırma için yedekler oluşturmak için aşağıdaki YAML dosyasında gösterilen görevi oluşturabilirsiniz:
- ana bilgisayarlar: tüm görevler:- ad: Ansible, with_items ile birden çok dizin oluşturun
dosya:
yol: ~/backups/item
durum: dizin
with_items:
- 'mysql'
- 'depo'
- 'yapılandırma'
Yukarıdaki dosyayı kaydedin ve ansible-playbook ile çalıştırın.
$ ansible-playbook mkdir_multi.yml PLAY [tümü] ************************************************** ************************************************************ ************************************************************ ************************************************************ ***GÖREV [Gerçekleri Toplama] ************************************************** ************************************************************ ************************************************************ ***************************************************
'/home/user/ anahtarı için parola girin.ssh/id_rsa':
tamam: [35.222.210.12]
GÖREV [Ansible,_items ile birden çok dizin oluştur] ********************************************* ************************************************************ ******************************************************* *************
değişti: [35.222.210.12] => (öğe=mysql)
değişti: [35.222.210.12] => (öğe=depo)
değişti: [35.222.210.12] => (öğe=yapılandırma)
OYUN ÖZETİ ******************************************************* ************************************************************ ************************************************************ ************************************************************
35.222.210.12 : tamam=2 değişti=1 ulaşılamaz=0 başarısız=0 atlandı=0 kurtarıldı=0 yoksayıldı=0
Yukarıdaki çalışma kitabı, ~/backups/mysql, ~/backups/repository ve ~/backups/config gibi birden çok dizin oluşturmalıdır.
$ ls -laDizin listesi çıktısı aşağıda gösterildiği gibidir:
toplam 0drwxrwxr-x. 5 debian debian 51 Mart 6 17:26 .
drwx------. 6 debian debian 117 Mart 6 17:26…
drwxrwxr-x. 2 debian debian 6 Mart 6 17:26 yapılandırma
drwxrwxr-x. 2 debian debian 6 Mart 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 Mart 6 17:26 deposu
Dizin için İzinler Nasıl Ayarlanır
Ansible, mod yönergesini kullanarak bir dizin için izinleri belirlemenizi sağlar. Bir dizin oluşturan ve izinleri ayarlayan aşağıdaki çalışma kitabını göz önünde bulundurun:
- ev sahibi: hepsigörevler:
- ad: Ansible dizin oluştur ve izinleri ayarla
dosya:
yol: /yedekler
durum: dizin
mod: "u=rw,g=wx,o=rwx"
hale: evet
Yukarıdaki girişte, / dizininde bir dizin oluşturduk. Ayrıca kök olmamız gerekiyordu, dolayısıyla şu hale geldi: evet girişi.
$ ansible-playbook izni.yml PLAY [tümü] ************************************************** ************************************************************ ************************************************************ ************************************************************ ***GÖREV [Gerçekleri Toplama] ************************************************** ************************************************************ ************************************************************ ***************************************************
'/home/user/ anahtarı için parola girin.ssh/id_rsa':
tamam: [35.222.210.12]
GÖREV [Ansible dizin oluştur ve izinleri ayarla] ***************************************** ************************************************************ ******************************************************* ****************
değişti: [35.222.210.12]
OYUN ÖZETİ ******************************************************* ************************************************************ ************************************************************ ************************************************************
35.222.210.12 : tamam=2 değişti=1 ulaşılamaz=0 başarısız=0 atlandı=0 kurtarıldı=0 yoksayıldı=0
Oluşturduğumuz dizinin izinlerini görüntülerseniz, aşağıdakileri göreceksiniz:
$ ls -lrt / | grep yedekleriÇıktı aşağıda gösterildiği gibidir:
drw--wxrwx. 2 kök kök 6 Mart 6 17:36 yedeklemeBir Dizindeki İzinleri Özyinelemeli Olarak Değiştirme
Bir dizinin ve dosyalarının izinlerini özyinelemeli olarak değiştirmek için özyinelemeli girişi aşağıda gösterildiği gibi belirtmeniz yeterlidir:
- ev sahibi: hepsigörevler:
- isim: Ansible dizin oluştur ve izinleri ayarla
dosya:
yol: /yedekler
durum: dizin
mod: "u=rw,g=wx,o=rwx"
özyinelemeli: evet
hale: evet
Birden Çok Dizinde İzinler Nasıl Ayarlanır
Ansible'da birden çok dizin için izin ayarlamak da birkaç satırlık giriş kadar basittir. Aşağıdaki oyun kitabını göz önünde bulundurun.
- ev sahibi: hepsigörevler:
- isim: Ansible, izinlere sahip çoklu dizin oluştur
dosya:
yol: " öğe.yol "
mod: "öğe.mod"
durum: dizin
with_items:
- yol: '~/backups/mysql', mod: '0777'
- yol: '~/backups/depo', mod: '0755'
- yol: '~/backups/config', mod: '0707'
Ansible'da Bir Dizin Nasıl Silinir
Ansible playbook kullanarak bir dizini ve tüm içeriğini kaldırmak için, durumu aşağıda gösterildiği gibi yok olarak belirtin:
- ev sahibi: hepsigörevler:
- isim: Ansible silme dizini
dosya:
yol: /yedekler
durum: yok
hale: evet
Bu komut dizini ve tüm alt dosyaları ve dizinleri kaldıracaktır.
NOT: Üzerinde çalıştığınız dizin için izinleriniz olduğundan emin olun.
Zaman Damgalı Dizin Nasıl Oluşturulur
Bazı durumlarda, özellikle yedekleme oluştururken çok yararlı olabilecek, kendisine zaman damgası eklenmiş bir dizin oluşturmanız gerekebilir. Zaman damgalı bir dizin oluşturmak için ansible_date_time değişkenini kullanabiliriz.
Aşağıdaki oyun kitabını göz önünde bulundurun:
- ev sahibi: hepsigörevler:
- isim: Ansible dizine zaman damgası ekleyin
dosya:
yol: "/backups/mysqlansible_date_time.tarih"
durum: dizin
mod: "0777"
hale: evet
Başucu kitabını çalıştırdıktan sonra, zaman damgalı bir dizininiz olacak.
$ ls -lDizin Listesi aşağıda gösterildiği gibi olmalıdır:
toplam 0 drwxrwxrwx. 2 kök kök 6 Mart 6 18:03 mysql2021-03-06NOT: Hatalardan kaçınmak için, her zaman Ansible'da kullanmayı düşündüğünüz YAML dosyası sözdizimini kontrol edin.
Sonuç
Bu öğretici, Ansible modülleriyle çalışmanın çok kolay ve sezgisel olduğunu göstererek karmaşık görevleri otomatikleştirmeyi daha basit hale getirdiğini gösterdi. Ansible dosya modülünü kullanarak bir veya daha fazla dizin oluşturabilir ve her biri için izinler ekleyebilirsiniz. Aynı modülü bir dizini kaldırmak için de kullanabilirsiniz Ansible dosya modülünün nasıl kullanılacağı hakkında daha fazla bilgi için kaynak sayfasındaki resmi belgelere bakın.