কীভাবে উত্তরযোগ্য ব্যবহার করে একটি ডিরেক্টরি তৈরি করবেন


375

আপনি কিভাবে একটি ডিরেক্টরি তৈরি করব www/srvএকটি ডেবিয়ান ভিত্তিক ব্যবস্থা Ansible প্লেবুক ব্যবহার করে?

উত্তর:


635

আপনি ফাইল মডিউল চান। ডিরেক্টরি তৈরি করতে আপনার এই বিকল্পটি নির্দিষ্ট করতে হবে state=directory:

- name: Creates directory
  file:
    path: /src/www
    state: directory

আপনি অন্যান্য বিকল্পগুলি http://docs.ansible.com/file_module.html এ দেখতে পারেন


36
যদি state=directoryনা থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।
অ্যালেক্স

1
@ অ্যালেক্স all immediate subdirectoriesবিভ্রান্তিকর, আপনি কি এটি সংজ্ঞা দিয়ে উদাহরণ দিতে পারেন?
জেমি জ্যাকসন

8
@ জ্যামি জ্যাকসন একটি ভুল আছে, "সমস্ত অন্তর্বর্তী সাব-ডিরেক্টরি" হওয়া উচিত।
অ্যালেক্স

203

আপনি এমনকি ফাইল মডিউল প্রসারিত করতে পারেন এবং এমনকি এটির মাধ্যমে মালিক, গোষ্ঠী এবং অনুমতি সেট করতে পারেন। (রেফ: উত্তরযোগ্য ফাইল ডকুমেন্টেশন )

- 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

এইভাবে, এটি উভয় ডিরেক্টরি তৈরি করবে, যদি সেগুলির অস্তিত্ব না থাকে।


38
recursiveযুক্তি ব্যবহার করার মত এই অনেক তোলে mkdir -p(যাদের Googling জন্য ansible mkdir, -p )।
মাইকা এলিয়ট

2
আমি দেখতে পেয়েছি যে এটি চাইল্ড ফাইলের অনুমতিও বদলেছে ... প্রায় এমকিডির
পি /

5
recurseপরামিতি পছন্দ করেন না mkdir -p। এটি পুনরাবৃত্তভাবে নির্দিষ্ট ফাইল বৈশিষ্ট্যগুলি সেট করে (কেবলমাত্র রাষ্ট্র = ডিরেক্টরিতে প্রযোজ্য)। যদি state=directoryনা থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।
অ্যালেক্স

1
এটি =অক্ষরের সাথে পুরানো বাক্য গঠন ব্যবহার করে , :নতুন লাইনে প্রতিটি অ্যাট্রিবিউটের সাথে সিনট্যাক্সের সাথে এটি আপডেট করা দুর্দান্ত হবে
ympostor

@ThePracticalOne - হ্যাঁ ... "পুনরাবৃত্তি" ব্যবহার করে ঠিক একইরকম আচরণ chmod -Rকরে। এটি হ'ল যদি pathইতিমধ্যে একটি ডিয়ার হিসাবে উপস্থিত থাকে এবং এর ভিতরে ফাইল থাকে তবে recurseবিকল্পটি (কখনও কখনও দুর্ভাগ্যক্রমে) ফাইলগুলিতে একই অনুমতিগুলি প্রয়োগ করে। এটি আরও ভাল বা খারাপের জন্য ডিজাইনের মাধ্যমে
ডেল অ্যান্ডারসন

14

আপনি ব্যবহার করে তৈরি করতে পারেন:

সর্বশেষ সংস্করণ 2 <

- 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

দেখুন - http://docs.ansible.com/ansible/file_module.html


14

ডিরেক্টরি কেবল ফাইল মডিউল ব্যবহার করে তৈরি করা যায়, কারণ ডিরেক্টরিটি ফাইল ব্যতীত আর কিছুই নয়।

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: foo
    group: foo

8
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: someone
    group: somegroup

আপনি প্রকৃতপক্ষে অনুমতিগুলি, মালিক এবং গোষ্ঠীটি সেট করতে পারেন। শেষ তিনটি পরামিতি বাধ্যতামূলক নয়।


7

আপনি একটি ডিরেক্টরি তৈরি করতে পারেন। ব্যবহার

# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755

আরও বিশদ সম্পর্কিত ডিরেক্টরি এবং ফাইল সিস্টেমের জন্য আপনি http://docs.ansible.com/ansible/file_module.html- এর পরামর্শ নিতে পারেন ।


7

এখানে সমস্ত উত্তরের জন্য অতিরিক্ত, অনেকগুলি পরিস্থিতি রয়েছে যখন আপনার তখন একটি ডিরেক্টরি তৈরি করতে হয় তাই প্রতিটি ডিরেক্টরিতে পৃথক টাস্ক তৈরির পরিবর্তে লুপগুলি ব্যবহার করা ভাল ধারণা।

- name: Creates directory
  file:
    path: "{{ item }}"
    state: directory
  with_items:
  - /srv/www
  - /dir/foo
  - /dir/bar

3

নির্দিষ্ট বিতরণের জন্য কার্য সম্পাদন করার জন্য কেবল শর্ত রাখা দরকার

- name: Creates directory
  file: path=/src/www state=directory
  when: ansible_distribution == 'Debian'

3

আপনি বিবৃতি ব্যবহার করতে পারেন

- name: webfolder - Creates web folder
  file: path=/srv/www state=directory owner=www-data group=www-data mode=0775`

3

আপনি যদি উইন্ডোতে ডিরেক্টরি তৈরি করতে চান:

  • নাম: ডিরেক্টরি কাঠামো তৈরি করুন
    win_file:
    পথ: সি: \ টেম্পল \ ফোল্ডার \ সাবফোল্ডার>
    রাষ্ট্র: ডিরেক্টরি



1

আপনি সরাসরি কমান্ডটি চালাতে পারেন এবং সরাসরি উত্তরযোগ্য ব্যবহার করে তৈরি করতে পারেন

ansible -v targethostname -m shell -a "mkdir /srv/www" -u targetuser

অথবা

ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser

1
---
- hosts: all
  connection: local
  tasks:
    - name: Creates directory
      file: path=/src/www state=directory

উপরের প্লেবুকটি / src পথে www ডিরেক্টরি তৈরি করবে।

উপরে প্লেবুক চালানোর আগে। আপনার উত্তরযোগ্য হোস্ট সংযোগ সেট করা উচিত তা নিশ্চিত করুন,

"লোকালহোস্ট উত্তরযোগ্য_সংযোগ = স্থানীয়"

/ ইত্যাদি / উত্তরযোগ্য / হোস্টগুলিতে উপস্থিত থাকা উচিত

আরও তথ্যের জন্য দয়া করে আমাকে জানান।


ফাইল: পথ = / src / www রাজ্য = ডিরেক্টরি
সৌরভ

1

ডিরেক্টরি তৈরি করতে

ansible host_name -m file -a "dest=/home/ansible/vndir state=directory"

1

একটি ডিরেক্টরি তৈরি করতে ফাইল মডিউলটি ব্যবহার করুন এবং "উত্তরযোগ্য-ডক ফাইল" কমান্ড ব্যবহার করে ফাইল মডিউল সম্পর্কে বিশদ পান

এখানে একটি বিকল্প "রাষ্ট্র" যা ব্যাখ্যা করে:

যদি directoryনা থাকে তবে সমস্ত তাত্ক্ষণিক সাব-ডাইরেক্টরি তৈরি করা হবে, যেহেতু 1.7 সেগুলি সরবরাহের অনুমতি নিয়ে তৈরি করা হবে।
তাহলে file, ফাইল যদি না এটি বিদ্যমান নেই সৃষ্টি হবে, [কপি] বা দেখুন [টেমপ্লেট] মডিউল যদি আপনি যে আচরণ চাই।
যদি link, প্রতীকী লিঙ্কটি তৈরি বা পরিবর্তিত হবে। hardহার্ডলিঙ্কগুলির জন্য ব্যবহার করুন ।
যদি absent, ডিরেক্টরিগুলি পুনরাবৃত্তভাবে মুছে ফেলা হবে, এবং ফাইল বা সিমলিঙ্কগুলি লিঙ্কমুক্ত করা হবে।

দ্রষ্টব্য যে fileরাজ্যটি পরিবর্তিত হয়নি বলে পথটির অস্তিত্ব না থাকলে ব্যর্থ হবে না।

যদি touch(১.৪-এ নতুন), পাথের অস্তিত্ব না থাকে তবে একটি ফাঁকা ফাইল তৈরি করা হবে, যখন একটি বিদ্যমান ফাইল বা ডিরেক্টরি আপডেট ফাইল অ্যাক্সেস এবং পরিবর্তনের সময় পাবেন ( touchকমান্ড লাইন থেকে কাজ করার মতো )।


1

আপনি এই ক্ষেত্রে "ফাইল" মডিউলটি ব্যবহার করতে পারেন, এমন অনেক যুক্তি রয়েছে যা আপনি নতুন তৈরি করা ডিরেক্টরি যেমন মালিক, গোষ্ঠী, অবস্থান, মোড ইত্যাদির জন্য পাস করতে পারেন .....

ফাইল মডিউলের বিস্তারিত ব্যাখ্যার জন্য দয়া করে এই দস্তাবেজটি দেখুন ...

https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module

মনে রাখবেন এই মডিউলটি কেবল ডিরেক্টরি তৈরির জন্য নয় !!!


1

জবাবদিহি করার জন্য ডিরেক্টরি তৈরি করার সবচেয়ে সহজ উপায় ।

  • নাম: আপনার_ডাইরেক্টরিটি উপস্থিত না থাকলে তৈরি করুন। ফাইল: পাথ: / ইত্যাদি / আপনার_ ডিরেক্টরি

অথবা

আপনি সেই ডিরেক্টরিতে sudo সুবিধা দিতে চান ।

  • নাম: আপনার_ডাইরেক্টরিটি উপস্থিত না থাকলে তৈরি করুন। ফাইল: পাথ: / ইত্যাদি / আপনার_ ডিরেক্টরি মোড: '777'

0

আমি প্রচুর প্লেবুকের উদাহরণ দেখতে পাচ্ছি এবং আমি অ্যাডহক আদেশের উদাহরণ উল্লেখ করতে চাই।

$ উত্তরযোগ্য -i ইনভেনটরি -m ফাইল -a "পাথ = / টিএমপি / ডাইরেক্টরি স্টেট = ডিরেক্টরি (ডিরেক্টরি পরিবর্তে আমরা ফাইল তৈরির জন্য স্পর্শের উল্লেখ করতে পারি)


0

এই ক্ষেত্রে আপনার ফাইল মডিউল ব্যবহার করতে হবে। প্লেবুকের নীচে আপনি আপনার উল্লেখের জন্য ব্যবহার করতে পারেন।

    ---
     - 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 

0

ডিরেক্টরি উপস্থিত রয়েছে কিনা তা পরীক্ষা করতে এবং তারপরে কিছু টাস্ক চালাও (যেমন ডিরেক্টরি তৈরি করুন) নিম্নলিখিতটি ব্যবহার করুন

- 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

0

আপনি fileমডিউল চান । ডিরেক্টরি তৈরি করতে আপনার এই বিকল্পটি নির্দিষ্ট করতে হবে state: directory:

- name: Creates directory
  file:
    path: /src/www
    state: directory

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.