Ansible : Uzak Bilgisayarlardaki Dosyaları ve Dizinleri Yönetin

Ansible’daki dosya modülü, uzak sunuculardaki dosya ve dizinleri yönetmek için çok yönlü ve temel bir araçtır. Bu Ansible modülü, uzak sunucularda dosya oluşturmanıza, silmenize, izinleri değiştirmenize ve dosya sahipliğini yönetmenize olanak tanır.

Dosya modülü şu amaçlar için kullanılabilir:

Bir dosyanın veya dizinin mevcut olup olmadığının sağlanması.
Dosya izinlerini ve sahipliğini değiştirme.
Sembolik ve somut bağlantılar yaratmak.
Bir dosyaya dokunmak (değiştirme zamanını güncellemek).

Bu yazımızda file modülünün gerçek dünyadaki kullanım durumlarını pratik örneklerle ele alacağız.

Ansible Dosya Modülünün temel sözdizimi

Örneklere geçmeden önce, dosya modülünün sözdizimini anlamak önemlidir. İşte genel bir bakış:

- name: Manage file or directory
  ansible.builtin.file:
    path: /path/to/file_or_directory
    state: [absent|directory|file|touch|link|hard|mounted]
    mode: '0644'
    owner: username
    group: groupname

Parametreler:

  • path: Bu, yönetmek istediğiniz dosyanın veya dizinin konumunu belirtir.
  • state: Dosya veya dizinin istenen durumunu tanımlar. En yaygın değerler şunlardır:
  • mode: Dosya veya dizin için izinleri tanımlar (örneğin, dizinler için 0755).
  • owner and group: Dosya veya dizinin sahibi olan kullanıcıyı ve grubu tanımlayın.

Ansible Dosya Modülü kullanarak bir dizin oluşturma

Doğru izinlere sahip dizinler oluşturmak, Ansible playbooklarında yaygın bir görevdir. Dosya modülünü kullanarak bir dizin oluşturmak için state: directory seçeneğini kullanabilirsiniz.

/tmp/new_directory dizininde bir dizin oluşturmak için örnek bir kılavuz:

- name: Create a directory
  ansible.builtin.file:
    path: /tmp/new_directory
    state: directory
    mode: '0755'

Her parametrenin kısa bir açıklaması şöyledir:

  • path: Dizinin oluşturulacağı konumu belirtir.
  • state: directory: Yolun bir dizin olmasını sağlar.
  • mode: Dizinin izinlerini 0755 olarak ayarlar ve sahibine okuma, yazma ve yürütme izinleri, gruba ve diğerlerine ise okuma ve yürütme izinleri verir.

Bir dosyanın izinlerini değiştirme

Dosya izinlerini değiştirmek de yaygın bir işlemdir. Mevcut bir dosyanın izinlerini değiştirmek için dosya modülünü kullanabilirsiniz; bunun için mod parametresini belirtebilirsiniz.

- name: Change file permissions
  ansible.builtin.file:
    path: /tmp/sample_file.txt
    mode: '0644'

İşte açıklaması:

  • path: İzinleri değiştirilecek dosyayı belirtir.
  • mode: Dosyanın izinlerini 0644 olarak değiştirir, bu da sahibinin okuma ve yazma yetkisine sahip olmasını sağlarken, diğerlerinin yalnızca okuma yetkisine sahip olmasını sağlar.

Dosya ve dizinleri kaldırma

Otomasyon sürecinizin bir parçası olarak bazen dosya veya dizinleri kaldırmanız gerekebilir. Dosya modülü, state: absent seçeneğini kullanarak bunu kolaylaştırır.

Örnek 1: Bir dosyayı kaldırma

- name: Remove a file
  ansible.builtin.file:
    path: /tmp/sample_file.txt
    state: absent

Yukarıdaki playbook dökümü şöyledir:

  • path: Kaldırılacak dosyanın konumunu belirtir.
  • state: absent: Eğer dosya varsa silinmesini sağlar.

Örnek 2: Bir dizini kaldırma

- name: Remove a directory
  ansible.builtin.file:
    path: /tmp/new_directory
    state: absent

Yukarıdaki oyun kitabının kısa bir açıklaması aşağıda gösterilmiştir:

  • path: Specifies the location of the directory to be removed.
  • state: absent: Ensures the directory is deleted if it exists.

Dosya Sahipliğini Değiştirme

Dosya sahipliği, çok kullanıcılı bir ortamda dosyaları yönetmenin bir diğer önemli unsurudur. Dosya modülünü kullanarak, sahip ve grup parametrelerini belirterek dosya ve dizinlerin sahipliğini değiştirebilirsiniz.

- name: Change file ownership
  ansible.builtin.file:
    path: /tmp/sample_file.txt
    owner: new_user
    group: new_group

Her parametreyi inceleyelim:

  • path: Sahipliğini değiştirmek istediğiniz dosyanın konumunu belirtir.
  • owner: Dosyanın sahibini new_user olarak değiştirir.
  • group: Dosyanın grubunu new_group olarak değiştirir.

Sembolik bağlantılar (sembolik bağlantılar), dosya veya dizinlere referans oluşturmanın kullanışlı bir yoludur. Dosya modülünü kullanarak, durum: bağlantı belirterek sembolik bağlantılar oluşturabilirsiniz.

- name: Create a symbolic link
  ansible.builtin.file:
    src: /tmp/sample_file.txt
    dest: /tmp/sample_symlink.txt
    state: link

Yukarıdaki playbook açıklaması şöyledir:

  • src: Sembolik bağlantının işaret edeceği kaynak dosya.
  • dest: Sembolik bağlantının oluşturulacağı yer.
  • state: link: Sembolik bir bağlantının oluşturulması gerektiğini belirtir.

 

 

 

Yazının orijinalini buradan okuyabilirsiniz.

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.