আর্কাইভ এবং আনআর্কাইভ মডিউল

Ansible এ আর্কাইভ (Archive) এবং আনআর্কাইভ (Unarchive) মডিউলগুলো ফাইল বা ডিরেক্টরির সংরক্ষণ এবং পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। এই মডিউলগুলো ব্যবহার করে আপনি সহজেই ফাইল এবং ডিরেক্টরি সংরক্ষণ করতে, সেগুলো আনপ্যাক করতে বা অন্যান্য সার্ভারে এক্সট্র্যাক্ট করতে পারেন। চলুন, প্রতিটি মডিউল সম্পর্কে বিস্তারিত আলোচনা করা যাক।

১. আর্কাইভ মডিউল (Archive Module)

আর্কাইভ মডিউল একটি নির্দিষ্ট ফাইল বা ডিরেক্টরিকে আর্কাইভ ফাইলে (যেমন: .tar, .zip) প্যাক করতে ব্যবহৃত হয়। এটি বিশেষ করে তখন কার্যকরী, যখন আপনি একটি ডিরেক্টরি বা ফাইলের ব্যাকআপ নিতে চান বা একটি কম্প্রেসড ফাইল তৈরি করতে চান।

উদাহরণ: আর্কাইভ মডিউল ব্যবহার

---
- name: Archive files and directories
  hosts: localhost
  tasks:
    - name: Create a tar.gz archive of /var/www/html
      ansible.builtin.archive:
        path: /var/www/html
        dest: /tmp/html_backup.tar.gz
        format: gz

ব্যাখ্যা:

  • path: যে ফাইল বা ডিরেক্টরি আর্কাইভ করতে চান, তার পাথ।
  • dest: আর্কাইভ ফাইল তৈরি হওয়ার পাথ এবং ফাইলের নাম।
  • format: আর্কাইভ ফাইলের ফরম্যাট নির্ধারণ করতে gz, bz2, xz, বা zip ব্যবহার করা যায়।

archive মডিউলের গুরুত্বপূর্ণ প্যারামিটার

  • path: আর্কাইভ করার জন্য উৎস ফাইল বা ডিরেক্টরি।
  • dest: আর্কাইভ ফাইল সংরক্ষণের স্থান এবং নাম।
  • format: আর্কাইভের ফরম্যাট (gz, bz2, xz, zip)।
  • remove: যদি true সেট করা হয়, তাহলে আর্কাইভ তৈরি করার পর উৎস ফাইল বা ডিরেক্টরি মুছে ফেলা হবে।

উদাহরণ: remove প্যারামিটার ব্যবহার করা

- name: Archive and remove the original directory
  hosts: localhost
  tasks:
    - name: Create a compressed archive and remove source
      ansible.builtin.archive:
        path: /var/log/myapp
        dest: /tmp/myapp_logs.tar.gz
        format: gz
        remove: true

ব্যাখ্যা: আর্কাইভ ফাইল তৈরির পর /var/log/myapp ডিরেক্টরিটি মুছে ফেলা হবে।

২. আনআর্কাইভ মডিউল (Unarchive Module)

আনআর্কাইভ মডিউল আর্কাইভ ফাইল (যেমন .tar.gz, .zip) আনপ্যাক করতে ব্যবহৃত হয়। এটি বিশেষ করে ডিপ্লয়মেন্ট বা কোনো ফাইলের কনটেন্ট এক্সট্র্যাক্ট করতে উপযোগী।

উদাহরণ: আনআর্কাইভ মডিউল ব্যবহার

---
- name: Unarchive a file
  hosts: localhost
  tasks:
    - name: Extract the html_backup.tar.gz archive
      ansible.builtin.unarchive:
        src: /tmp/html_backup.tar.gz
        dest: /var/www/html
        remote_src: yes

ব্যাখ্যা:

  • src: আর্কাইভ ফাইলের উৎস পাথ।
  • dest: আর্কাইভ ফাইলটি এক্সট্র্যাক্ট করার গন্তব্যস্থল।
  • remote_src: যদি yes সেট করা হয়, তাহলে এটি মনে করবে যে আর্কাইভ ফাইলটি রিমোট হোস্টে অবস্থিত।

আনআর্কাইভ মডিউলের গুরুত্বপূর্ণ প্যারামিটার

  • src: উৎস আর্কাইভ ফাইল যা আনপ্যাক করতে হবে।
  • dest: এক্সট্র্যাক্ট করা ফাইলের গন্তব্যস্থান।
  • remote_src: আর্কাইভ ফাইলটি রিমোট হোস্টে অবস্থিত কিনা তা নির্দেশ করে (yes/no)।
  • creates: যদি উল্লেখিত ফাইল বা ডিরেক্টরি আগে থেকেই থাকে, তাহলে আনআর্কাইভ মডিউল আর এক্সট্র্যাক্ট করবে না। এটি ইডেম্পোটেন্সি নিশ্চিত করতে ব্যবহার করা হয়।

উদাহরণ: creates প্যারামিটার ব্যবহার করা

- name: Unarchive only if directory does not exist
  hosts: localhost
  tasks:
    - name: Extract the archive if not already extracted
      ansible.builtin.unarchive:
        src: /tmp/html_backup.tar.gz
        dest: /var/www/html
        remote_src: yes
        creates: /var/www/html/index.html

ব্যাখ্যা: যদি /var/www/html/index.html ফাইলটি আগে থেকেই থাকে, তাহলে আনআর্কাইভ মডিউল কিছু করবে না।

আর্কাইভ এবং আনআর্কাইভ একত্রে ব্যবহার

একই প্লেবুকে আর্কাইভ এবং আনআর্কাইভ মডিউল ব্যবহার করে আপনি ফাইলের ব্যাকআপ নিতে এবং তা পুনরুদ্ধার করতে পারেন:

---
- name: Backup and restore example
  hosts: localhost
  tasks:
    - name: Archive the application logs
      ansible.builtin.archive:
        path: /var/log/myapp
        dest: /tmp/myapp_logs_backup.tar.gz
        format: gz

    - name: Unarchive the logs to backup directory
      ansible.builtin.unarchive:
        src: /tmp/myapp_logs_backup.tar.gz
        dest: /backup/logs
        remote_src: yes

সংক্ষেপে

মডিউলবর্ণনা
archiveএকটি ফাইল বা ডিরেক্টরিকে আর্কাইভ ফাইলে প্যাক করে।
unarchiveআর্কাইভ ফাইল আনপ্যাক করে এবং গন্তব্যস্থলে এক্সট্র্যাক্ট করে।

Ansible এর archive এবং unarchive মডিউল ব্যবহার করে সহজেই ফাইল বা ডিরেক্টরি সংরক্ষণ ও পুনরুদ্ধার করতে পারবেন। এটি বিশেষ করে ব্যাকআপ এবং ডিপ্লয়মেন্টের জন্য খুবই কার্যকর।

আরও দেখুন...

Promotion