কীভাবে উত্তরযোগ্য পরিচালিত নোডগুলি কনফিগার করবেন এবং অ্যাড-হক কমান্ডগুলি চালান - পার্ট 3
এই সেট আপ উত্তরীয় নিয়ন্ত্রণ নোড এর আগের দুটি নিবন্ধে। এই অংশ 3 এ, আমরা প্রদর্শন করব যে আপনি কীভাবে দূরবর্তী হোস্টগুলিতে অ্যাড-হক কমান্ড চালাতে উত্তরযোগ্য পরিচালিত নোডগুলি কনফিগার করতে পারেন।
উত্তরযুক্ত পরিচালিত নোডগুলিতে পাসওয়ার্ডহীন এসএসএইচ প্রমাণীকরণ সেটআপ করুন
আমাদের শেষ বিষয়টির পুনরুদ্ধার হিসাবে, উত্তরীয় সহ দূরবর্তী হোস্টগুলি পরিচালনার জন্য উত্তর নিয়ন্ত্রণ নোড এবং পরিচালিত হোস্টগুলির মধ্যে পাসওয়ার্ডহীন এসএসএইচ প্রমাণীকরণ স্থাপন করা প্রয়োজন। এর মধ্যে জবাবদিহিত নিয়ন্ত্রণ নোডে একটি মূল জুটি (পাবলিক এবং প্রাইভেট এসএসএইচ কী জুড়ি) তৈরি করা এবং দূরবর্তী হোস্টগুলির সকলের কাছে সর্বজনীন কী অনুলিপি করা জড়িত। এটি এগিয়ে যাওয়ার একটি গুরুত্বপূর্ণ পদক্ষেপ এবং এটি আপনার কাজকে আরও সহজ করে তুলবে।
পরিচালিত নোডগুলিতে প্রিভিলেজ এসকেলেশন কনফিগার করুন
নিয়মিত ব্যবহারকারীরূপে লগ ইন করার সময় আপনাকে পরিচালিত নোডগুলিতে কিছু নির্দিষ্ট কাজ সম্পাদন করতে হতে পারে যার জন্য উন্নত সুবিধা বা মূল অধিকারগুলির প্রয়োজন হয়। এই কার্যগুলির মধ্যে প্যাকেজ পরিচালনা, নতুন ব্যবহারকারী এবং গোষ্ঠী যুক্ত করা এবং সিস্টেম কনফিগারেশনগুলিতে কিছু উল্লেখ করার পরিবর্তে কিছু পরিবর্তন রয়েছে। এটি অর্জনের জন্য, আপনাকে রিমোট হোস্টগুলিতে সুবিধাপ্রাপ্ত ব্যবহারকারী হিসাবে কাজগুলি চালানোর জন্য প্লেবুকের কিছু নির্দিষ্ট নির্দেশাবলীর আবেদন করতে হবে।
উত্তরযোগ্য আপনাকে বর্তমানে লগ ইন করা থেকে আলাদা ম্যানেজড নোডের অন্য ব্যবহারকারীকে 'হয়ে উঠতে' অনুমতি দেয় < হন: হ্যাঁ নির্দেশিকা আপনার সুবিধাগুলি উন্নীত করে এবং আপনাকে এমন কাজগুলি সম্পাদন করতে দেয় যা আপনাকে ইনস্টলিং এবং র মতো মূল অধিকারগুলির প্রয়োজন হয় perform প্যাকেজ আপডেট এবং সিস্টেম পুনরায় বুট করা হচ্ছে।
একটি প্লেবুক httpd.yml
বিবেচনা করুন যা অ্যাপাচি ওয়েবসার্ভারটি প্রদর্শিত হিসাবে ইনস্টল করে এবং শুরু করে:
--- - name: install and start Apache webserver hosts: webservers tasks: - name: install httpd yum: name=httpd state=latest become: yes - name: check httpd status service: name=httpd state=started
হয়ে যান: হ্যাঁ নির্দেশিকা আপনাকে দূরবর্তী হোস্টের মূল ব্যবহারকারী হিসাবে কমান্ড সম্পাদন করতে দেয়।
আপনি অন্য ব্যবহারকারী হয়ে উঠতে ব্যবহার করতে পারেন এমন আরেকটি নির্দেশনা হ'ল get_user। এটি আপনাকে লগ ইন করার পরে রিমোট হোস্টের সুডো ব্যবহারকারীর সাথে স্যুইচ করতে দেয় এবং আপনি যে ব্যবহারকারী হিসাবে লগ ইন করেন তা নয়।
উদাহরণস্বরূপ, রিমোটে টেকমিন্ট ব্যবহারকারী হিসাবে একটি কমান্ড চালানোর জন্য প্রদর্শিত নির্দেশ নির্দেশ করুন।
- name: Run a command as the apache user command: somecommand become: yes become_user: tecmint
এই নির্দেশটি উত্তরসূচক সিএফজি ফাইলে সেট করা ডিফল্ট পদ্ধতিটি ওভাররাইড করে যা সাধারণত সুডোতে সেট থাকে।
এগুলি প্লে বা টাস্ক স্তরে ব্যবহৃত হয়, উদাহরণস্বরূপ যখন শেলটি নোলজিনে সেট করা থাকে তখন আপনাকে কোনও ব্যবহারকারীর স্যুইচ করতে হবে।
উদাহরণ স্বরূপ,
- name: Run a command as nobody command: somecommand become: true become_method: su become_user: nobody become_flags: '-s /bin/sh'
প্রিভিলেজ বর্ধনে কমান্ড-লাইন বিকল্প
আসুন কমান্ড-লাইনগুলির কয়েকটি বিকল্পগুলি একবার দেখুন যা আপনি কমান্ডগুলি চালনার সময় আপনার সুবিধাগুলি উন্নত করতে ব্যবহার করতে পারেন:
-
--ask-get-pass
,-K
- এটি আপনাকে যে সংযোগের চেষ্টা করছেন তার দূরবর্তী সিস্টেমে সুডো ব্যবহারকারীর পাসওয়ার্ডের জন্য অনুরোধ জানায় <
$ ansible-playbook myplaybook.yml --ask-become-pass
-
--become
,-b
- এটি আপনাকে পাসওয়ার্ডের জন্য অনুরোধ না করে রুট ব্যবহারকারী হিসাবে কাজটি চালানোর অনুমতি দেয়
$ ansible-playbook myplaybook.yml --become
-
--become-user = BECOME_USER
- এটি আপনাকে অন্য একজন ব্যবহারকারী হিসাবে কাজ চালানোর অনুমতি দেয়
$ ansible-playbook myplaybook.yml --become-user=tecmint
অ্যাড-হক উত্তরযোগ্য কমান্ড ব্যবহার করে একটি কার্যকারী কনফিগারেশন যাচাই করুন
কখনও কখনও, আপনি কোনও প্লেবুক তৈরি না করেই জবাবদিহি রিমোট হোস্ট বা সার্ভারগুলিতে দ্রুত এবং সাধারণ কাজ সম্পাদন করতে চাইতে পারেন। সেক্ষেত্রে আপনার একটি অ্যাড-হক কমান্ড চালানো দরকার।
একটি উত্তরযোগ্য অ্যাডহক কমান্ড হ'ল এক-লাইন কমান্ড যা আপনাকে প্লেবুক তৈরির প্রয়োজন ছাড়াই সহজ তবে দক্ষ পদ্ধতিতে সহজ কাজগুলি সম্পাদন করতে সহায়তা করে। এই ধরনের কাজের মধ্যে হোস্টগুলির মধ্যে ফাইলগুলি অনুলিপি করা, সার্ভারগুলি পুনরায় বুট করা, ব্যবহারকারীদের যুক্ত করা এবং অপসারণ করা এবং একটি প্যাকেজ ইনস্টল করা অন্তর্ভুক্ত।
এই টিউটোরিয়ালে, আমরা উত্তরযোগ্য অ্যাড-হক কমান্ডের বিভিন্ন অ্যাপ্লিকেশনটি ঘুরে দেখি। আমরা একটি বিক্ষোভের জন্য নীচের ইনভেন্টরি ফাইলটি ব্যবহার করতে যাচ্ছি।
[webservers] 173.82.115.165 [database_servers] 173.82.202.239
উত্তরযোগ্য-অ্যাডহক কমান্ডগুলির সর্বাধিক প্রাথমিক ব্যবহারটি হোস্ট বা হোস্টের একটি দলকে পিং করা হয়।
# ansible -m ping all
উপরের কমান্ডে -m
পরামিতি মডিউল বিকল্প। পিং হ'ল অ্যাডহক কমান্ড এবং দ্বিতীয় পরামিতি সমস্ত ইনভেন্টরি ফাইলের সমস্ত হোস্টকে উপস্থাপন করে। কমান্ডের আউটপুট নীচে প্রদর্শিত হবে:
হোস্টের একটি নির্দিষ্ট গ্রুপকে পিং করতে, গোষ্ঠীর নামের সাথে ‘সমস্ত’ পরামিতি প্রতিস্থাপন করুন। নীচের উদাহরণে, আমরা ওয়েবসার্স গ্রুপের অধীনে হোস্টগুলির সাথে সংযোগের পরীক্ষা করছি।
# ansible -m ping webservers
অতিরিক্ত হিসাবে, আপনি ডাবল উদ্ধৃতি চিহ্নগুলিতে নিয়মিত লিনাক্স কমান্ড নির্দিষ্ট করতে -a
বৈশিষ্ট্যটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, রিমোট সিস্টেমগুলির সিস্টেম আপটাইম পরীক্ষা করতে, চালান:
# ansible -a "uptime" all
দূরবর্তী হোস্টের ডিস্ক ব্যবহার পরীক্ষা করতে।
# ansible -a "df -Th" all
অ্যাডহক কমান্ডের সাহায্যে আপনি শত শত মডিউল ব্যবহার করতে পারেন। মডিউলগুলির বিবরণ সহ পুরো তালিকা দেখতে, নীচের কমান্ডটি চালান।
# ansible-doc -l
নির্দিষ্ট মডিউল সম্পর্কে বিশদ তথ্য দেখতে কমান্ডটি চালান।
# ansible-doc module_name
উদাহরণস্বরূপ, yum মডিউল সম্পর্কে আরও বিশদ অনুসন্ধানের জন্য:
# ansible-doc yum
Yum এবং অ্যাপ্লিকেশন প্যাকেজ ম্যানেজার ব্যবহার করে প্যাকেজ ইনস্টল ও অপসারণের জন্য উত্তরীয় অ্যাডহক কমান্ড ব্যবহার করা যেতে পারে।
ইনভেন্টরি ফাইলটিতে ওয়েব সার্ভার গ্রুপের অধীনে সেন্টোস 7 হোস্টে অ্যাপাচি ওয়েব সার্ভার ইনস্টল করতে কমান্ডটি চালান:
# ansible webservers -m yum -a "name=httpd state=present"
অ্যাপাচি ওয়েব সার্ভারের ইনস্টলেশন যাচাই করতে, দূরবর্তী ক্লায়েন্টে লগ ইন করুন এবং রান করুন।
# rpm -qa | grep httpd
অ্যাপাচি আনইনস্টল করতে, সরল অবস্থায় উপস্থিত থেকে অনুপস্থিতে পরিবর্তন করুন।
# ansible webservers -m yum -a "name=httpd state=absent"
আবার, httpd রান অপসারণ নিশ্চিত করতে।
# rpm -qa | grep httpd
যেমন পর্যবেক্ষণ করা হয়েছে, অ্যাপাচি ওয়েব সার্ভার প্যাকেজগুলি মুছে ফেলা হয়েছে।
ব্যবহারকারী তৈরি করার সময়, ‘ব্যবহারকারী’ মডিউলটি কাজে আসে। ক্লায়েন্ট সিস্টেম ডাটাবেস_সভারে পাসওয়ার্ড redhat সহ একটি নতুন ব্যবহারকারী জেমস তৈরি করতে, কমান্ডটি জারি করুন।
# ansible database_server -m user -a "name=james password=redhat"
নতুন ব্যবহারকারীর সৃষ্টি নিশ্চিত করতে, কমান্ডটি চালান:
# ansible database_servers -a "id james"
ব্যবহারকারীকে সরাতে, কমান্ডটি চালান:
# ansible database_servers -m user -a "name=james state=absent"
আপনি যদি নিয়মিত ব্যবহারকারীর মতো অ্যানসিবল চালিয়ে চলেছেন তবে উত্তরীয় দূরবর্তী হোস্টগুলিতে --become
ব্যবহার করে রুট সুবিধাগুলি অর্জন করতে এবং পাসওয়ার্ডের জন্য প্রম্পট করার জন্য -k
বিকল্প ব্যবহার করে remote
উদাহরণস্বরূপ, অধিকারযুক্ত বিকল্প - -become
এবং -K
বিকল্পটি "কমান্ডটি চালানোর জন্য রুট ব্যবহারকারীর পাসওয়ার্ডের জন্য অনুরোধ জানাতে" নেটসট্যাট -পিএনল্টু "দিয়ে উত্তরীয় অ্যাডহক কমান্ড চালাতে হবে ।
$ ansible webservers -m shell -a 'netstat -pnltu' --become -K
রুট ব্যতীত অন্য একজন ব্যবহারকারী হয়ে উঠতে --become-user
বৈশিষ্ট্যটি ব্যবহার করুন।
উদাহরণস্বরূপ, দূরবর্তী হোস্টগুলিতে টেকমিন্ট ব্যবহারকারী হিসাবে ‘df -Th’ চালানো এবং পাসওয়ার্ড চালানোর জন্য প্রম্পট করুন:
$ ansible all -m shell -a 'df -Th' --become-user tecmint -K
তথ্যগুলি একটি সিস্টেম সম্পর্কে বিস্তারিত তথ্য উল্লেখ করে। এর মধ্যে কয়েকটি উল্লেখ করার জন্য আইপি ঠিকানা, সিস্টেম আর্কিটেকচার, মেমরি এবং সিপিইউ সম্পর্কিত তথ্য রয়েছে।
দূরবর্তী হোস্ট সম্পর্কে তথ্য পুনরুদ্ধার করতে, কমান্ডটি চালান:
$ ansible all -m setup
উত্তরীয় একাধিক দূরবর্তী হোস্টগুলিতে উত্তরযোগ্য নিয়ন্ত্রণ থেকে ফাইলগুলি সুরক্ষিতভাবে অনুলিপি করতে মডিউল অনুলিপি ব্যবহার করে।
নীচে একটি অনুলিপি অপারেশন উদাহরণ:
# ansible webservers -m copy -a "src=/var/log/secure dest=/tmp/"
কমান্ডটি/tmp গন্তব্যস্থল ওয়েবসভার্স গ্রুপের রিমোট হোস্টগুলিতে উত্তরীয় নিয়ন্ত্রণ নোডের/var/লগ/সুরক্ষিত ফাইলটি অনুলিপি করে।
অনুমতি এবং ফাইলের মালিকানা পরিবর্তন করতে আপনি ফাইল মডিউলটি ব্যবহার করতে পারেন।
# ansible webservers -m file -a "dest=/tmp/secure mode=600"
অতিরিক্ত হিসাবে, আপনি প্রদর্শিত হিসাবে মালিক এবং গোষ্ঠী যুক্তি যুক্ত করতে পারেন:
# ansible webservers -m file -a "dest=/tmp/secure mode=600 owner=tecmint group=tecmint"
আপনি যেমন দেখানো হয়েছে mkdir -p
তে অনুরূপভাবে ডিরেক্টরিও তৈরি করতে পারেন।
$ ansible webservers -m file -a "dest=/path/to/directory mode=755 owner=tecmint group=tecmint state=directory"
উদাহরণ স্বরূপ,
$ ansible webservers -m file -a "dest=/home/tecmint/data mode=755 owner=tecmint group=tecmint state=directory"
এই নিবন্ধে, আমরা কীভাবে আপনি দূরবর্তী হোস্টগুলি পরিচালনা করতে উত্তরীয় অ্যাডহক কমান্ডগুলি পরিচালনা করতে পরিচালিত নোডগুলি কনফিগার করতে পারেন সে বিষয়ে আলোকপাত করেছি। আমরা আশা করি আপনি এটি দরকারী পেয়েছেন। এটিকে একটি শট দিন এবং আমাদের কীভাবে তা চলুন তা জানান।