আপনি কিভাবে একটি ডিরেক্টরি তৈরি করব www
এ /srv
একটি ডেবিয়ান ভিত্তিক ব্যবস্থা Ansible প্লেবুক ব্যবহার করে?
আপনি কিভাবে একটি ডিরেক্টরি তৈরি করব www
এ /srv
একটি ডেবিয়ান ভিত্তিক ব্যবস্থা Ansible প্লেবুক ব্যবহার করে?
উত্তর:
আপনি ফাইল মডিউল চান। ডিরেক্টরি তৈরি করতে আপনার এই বিকল্পটি নির্দিষ্ট করতে হবে state=directory
:
- name: Creates directory
file:
path: /src/www
state: directory
আপনি অন্যান্য বিকল্পগুলি http://docs.ansible.com/file_module.html এ দেখতে পারেন
all immediate subdirectories
বিভ্রান্তিকর, আপনি কি এটি সংজ্ঞা দিয়ে উদাহরণ দিতে পারেন?
আপনি এমনকি ফাইল মডিউল প্রসারিত করতে পারেন এবং এমনকি এটির মাধ্যমে মালিক, গোষ্ঠী এবং অনুমতি সেট করতে পারেন। (রেফ: উত্তরযোগ্য ফাইল ডকুমেন্টেশন )
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
এমনকি, আপনি ডিরেক্টরিগুলি পুনরাবৃত্তভাবে তৈরি করতে পারেন:
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
recurse: yes
এইভাবে, এটি উভয় ডিরেক্টরি তৈরি করবে, যদি সেগুলির অস্তিত্ব না থাকে।
recursive
যুক্তি ব্যবহার করার মত এই অনেক তোলে mkdir -p
(যাদের Googling জন্য ansible mkdir, -p )।
recurse
পরামিতি পছন্দ করেন না mkdir -p
। এটি পুনরাবৃত্তভাবে নির্দিষ্ট ফাইল বৈশিষ্ট্যগুলি সেট করে (কেবলমাত্র রাষ্ট্র = ডিরেক্টরিতে প্রযোজ্য)। যদি state=directory
না থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।
=
অক্ষরের সাথে পুরানো বাক্য গঠন ব্যবহার করে , :
নতুন লাইনে প্রতিটি অ্যাট্রিবিউটের সাথে সিনট্যাক্সের সাথে এটি আপডেট করা দুর্দান্ত হবে
chmod -R
করে। এটি হ'ল যদি path
ইতিমধ্যে একটি ডিয়ার হিসাবে উপস্থিত থাকে এবং এর ভিতরে ফাইল থাকে তবে recurse
বিকল্পটি (কখনও কখনও দুর্ভাগ্যক্রমে) ফাইলগুলিতে একই অনুমতিগুলি প্রয়োগ করে। এটি আরও ভাল বা খারাপের জন্য ডিজাইনের মাধ্যমে ।
আপনি ব্যবহার করে তৈরি করতে পারেন:
- name: Create Folder
file:
path: /srv/www/
owner: user
group: user
mode: 0755
state: directory
- name: Create Folder
file:
path=/srv/www/
owner=user
group=user
mode=0755
state=directory
ডিরেক্টরি কেবল ফাইল মডিউল ব্যবহার করে তৈরি করা যায়, কারণ ডিরেক্টরিটি ফাইল ব্যতীত আর কিছুই নয়।
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: foo
group: foo
আপনি একটি ডিরেক্টরি তৈরি করতে পারেন। ব্যবহার
# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755
আরও বিশদ সম্পর্কিত ডিরেক্টরি এবং ফাইল সিস্টেমের জন্য আপনি http://docs.ansible.com/ansible/file_module.html- এর পরামর্শ নিতে পারেন ।
এখানে সমস্ত উত্তরের জন্য অতিরিক্ত, অনেকগুলি পরিস্থিতি রয়েছে যখন আপনার তখন একটি ডিরেক্টরি তৈরি করতে হয় তাই প্রতিটি ডিরেক্টরিতে পৃথক টাস্ক তৈরির পরিবর্তে লুপগুলি ব্যবহার করা ভাল ধারণা।
- name: Creates directory
file:
path: "{{ item }}"
state: directory
with_items:
- /srv/www
- /dir/foo
- /dir/bar
নির্দিষ্ট বিতরণের জন্য কার্য সম্পাদন করার জন্য কেবল শর্ত রাখা দরকার
- name: Creates directory
file: path=/src/www state=directory
when: ansible_distribution == 'Debian'
আপনি যদি উইন্ডোতে ডিরেক্টরি তৈরি করতে চান:
- নাম: ডিরেক্টরি কাঠামো তৈরি করুন
win_file:
পথ: সি: \ টেম্পল \ ফোল্ডার \ সাবফোল্ডার>
রাষ্ট্র: ডিরেক্টরি
জবাবদিহি করার জন্য ডিরেক্টরি তৈরি করতে আমাদের কাছে মডিউল উপলব্ধ
উদাহরণ
- name: Creates directory
file:
path: /src/www
state: directory
আপনি সরাসরি কমান্ডটি চালাতে পারেন এবং সরাসরি উত্তরযোগ্য ব্যবহার করে তৈরি করতে পারেন
ansible -v targethostname -m shell -a "mkdir /srv/www" -u targetuser
অথবা
ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser
---
- hosts: all
connection: local
tasks:
- name: Creates directory
file: path=/src/www state=directory
উপরের প্লেবুকটি / src পথে www ডিরেক্টরি তৈরি করবে।
উপরে প্লেবুক চালানোর আগে। আপনার উত্তরযোগ্য হোস্ট সংযোগ সেট করা উচিত তা নিশ্চিত করুন,
"লোকালহোস্ট উত্তরযোগ্য_সংযোগ = স্থানীয়"
/ ইত্যাদি / উত্তরযোগ্য / হোস্টগুলিতে উপস্থিত থাকা উচিত
আরও তথ্যের জন্য দয়া করে আমাকে জানান।
একটি ডিরেক্টরি তৈরি করতে ফাইল মডিউলটি ব্যবহার করুন এবং "উত্তরযোগ্য-ডক ফাইল" কমান্ড ব্যবহার করে ফাইল মডিউল সম্পর্কে বিশদ পান
এখানে একটি বিকল্প "রাষ্ট্র" যা ব্যাখ্যা করে:
যদি
directory
না থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।
তাহলেfile
, ফাইল যদি না এটি বিদ্যমান নেই সৃষ্টি হবে, [কপি] বা দেখুন [টেমপ্লেট] মডিউল যদি আপনি যে আচরণ চাই।
যদিlink
, প্রতীকী লিঙ্কটি তৈরি বা পরিবর্তিত হবে।hard
হার্ডলিঙ্কগুলির জন্য ব্যবহার করুন ।
যদিabsent
, ডিরেক্টরিগুলি পুনরাবৃত্তভাবে মুছে ফেলা হবে, এবং ফাইল বা সিমলিঙ্কগুলি লিঙ্কমুক্ত করা হবে।দ্রষ্টব্য যে
file
রাজ্যটি পরিবর্তিত হয়নি বলে পথটির অস্তিত্ব না থাকলে ব্যর্থ হবে না।যদি
touch
(১.৪-এ নতুন), পাথের অস্তিত্ব না থাকে তবে একটি ফাঁকা ফাইল তৈরি করা হবে, যখন একটি বিদ্যমান ফাইল বা ডিরেক্টরি আপডেট ফাইল অ্যাক্সেস এবং পরিবর্তনের সময় পাবেন (touch
কমান্ড লাইন থেকে কাজ করার মতো )।
আপনি এই ক্ষেত্রে "ফাইল" মডিউলটি ব্যবহার করতে পারেন, এমন অনেক যুক্তি রয়েছে যা আপনি নতুন তৈরি করা ডিরেক্টরি যেমন মালিক, গোষ্ঠী, অবস্থান, মোড ইত্যাদির জন্য পাস করতে পারেন .....
ফাইল মডিউলের বিস্তারিত ব্যাখ্যার জন্য দয়া করে এই দস্তাবেজটি দেখুন ...
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
মনে রাখবেন এই মডিউলটি কেবল ডিরেক্টরি তৈরির জন্য নয় !!!
জবাবদিহি করার জন্য ডিরেক্টরি তৈরি করার সবচেয়ে সহজ উপায় ।
অথবা
আপনি সেই ডিরেক্টরিতে sudo সুবিধা দিতে চান ।
আমি প্রচুর প্লেবুকের উদাহরণ দেখতে পাচ্ছি এবং আমি অ্যাডহক আদেশের উদাহরণ উল্লেখ করতে চাই।
$ উত্তরযোগ্য -i ইনভেনটরি -m ফাইল -a "পাথ = / টিএমপি / ডাইরেক্টরি স্টেট = ডিরেক্টরি (ডিরেক্টরি পরিবর্তে আমরা ফাইল তৈরির জন্য স্পর্শের উল্লেখ করতে পারি)
এই ক্ষেত্রে আপনার ফাইল মডিউল ব্যবহার করতে হবে। প্লেবুকের নীচে আপনি আপনার উল্লেখের জন্য ব্যবহার করতে পারেন।
---
- hosts: <Your target host group>
name: play1
tasks:
- name: Create Directory
files:
path=/srv/www/
owner=<Intended User>
mode=<Intended permission, e.g.: 0750>
state=directory
ডিরেক্টরি উপস্থিত রয়েছে কিনা তা পরীক্ষা করতে এবং তারপরে কিছু টাস্ক চালাও (যেমন ডিরেক্টরি তৈরি করুন) নিম্নলিখিতটি ব্যবহার করুন
- name: Check if output directory exists
stat:
path: /path/to/output
register: output_folder
- name: Create output directory if not exists
file:
path: /path/to/output
state: directory
owner: user
group: user
mode: 0775
when: output_folder.stat.exists == false
আপনি file
মডিউল চান । ডিরেক্টরি তৈরি করতে আপনার এই বিকল্পটি নির্দিষ্ট করতে হবে state: directory
:
- name: Creates directory
file:
path: /src/www
state: directory
state=directory
না থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।