কীভাবে এসএসএইচ সংযোগের জন্য ডিফল্ট উত্তরযোগ্য ব্যবহারকারীর নাম / পাসওয়ার্ড সেট করবেন?


59

আমি জবাবদিহি ব্যবহার করছি এবং আমার আমার সমস্ত ইনভেন্টরিতে এই কনফিগারেশনটি রয়েছে:

[master]
192.168.1.10 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[slave]
192.168.1.11 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
192.168.1.12 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[app]
192.168.1.13 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[all:children]
master
slave

আমি প্রতিটি নতুন উদাহরণের জন্য সমস্ত পরামিতি পুনরাবৃত্তি করতে চাই না। আমি তাদের ঠিক এক জায়গায় কনফিগার করতে পারি? এই পরামিতিগুলির সাথে কোনও ফাইল আছে?


3
~/.ssh/config
সেজেজোজ

1
@ceejayoz আপনি কি কিছুটা ব্যাখ্যা করতে পারেন
রবার্ট

আমি কোনও উত্তরযোগ্য প্রশাসক নই, এবং ডক্সগুলি বিষয়টিতে মেঘলা রয়েছে ( এটি কি কোনও "ভেরিয়েবল" বা "প্যারামিটার" এবং কোনও পার্থক্য আছে? ) তবে দেখে মনে হচ্ছে আপনি গ্রুপ পর্যায়ে ভেরিয়েবল সংজ্ঞায়িত করতে পারেন।
DerbK

উত্তর:


73

আপনি আপনার ইনভেন্টরি ফাইলটিতে নিম্নলিখিত বিভাগটি যুক্ত করতে পারেন:

[all:vars]
ansible_connection=ssh
ansible_user=vagrant
ansible_ssh_pass=vagrant

দ্রষ্টব্য: উত্তরযোগ্য 2.0 আগে ansible_userছিল ansible_ssh_user


2
[all:vars] ansible_connection=ssh ansible_port=22 ansible_user=admin
উত্তরযোগ্য

2
@ zx1986 আপনি কোথায় পড়েছেন?
030

2
@ 030 এখানে: docs.ansible.com/ansible/…
zx1986

মনে রাখবেন যে পোর্ট 22 এর জন্য ডিফল্ট ansible_port, সুতরাং আলাদা না হলে আপনাকে স্পষ্টভাবে এটি নির্দিষ্ট করার দরকার নেই। আগ্রহী যদি কোনও সময়ে একাধিক গ্রুপে ভেরিয়েবল প্রয়োগ করতে হয় তবে (তবে 'সমস্ত' নয়) কমা বিচ্ছেদ কার্যকর বলে মনে হচ্ছে না।
উইলিয়াম তারেল

1
@ উইলিয়ামআরথেল একটু দেরি করে তবে .. আপনি একটি গ্রুপ তৈরি করতে পারেন (বাচ্চাদের সংশোধক সহ) এবং তারপরে ভেরিয়েবলগুলি সেট করতে পারেন (এর সাথে: ভার্স পরিবর্তনকারী)।
লাসে হালবার্গ হারবায়ে

23

গ্রুপ ভেরিয়েবল

জবাবদিহির সেরা অনুশীলন নথিতে উল্লিখিত প্লেবুক লেআউটটি ব্যবহার করে এবং সেগুলি সংজ্ঞায়িত করার জন্য একটি ফাইল তৈরি করে আপনি সমস্ত ভেরিয়েবল সেট করতে পারেন ।group_vars/all

---
# file: group_vars/all
ansible_connection: ssh 
ansible_ssh_user: vagrant 
ansible_ssh_pass: vagrant

[সম্পাদনা] আপনি যা করার চেষ্টা করছেন তা সত্ত্বেও আমি বিভ্রান্ত। আপনার তালিকাতে উত্তরীয় ব্যবহারকারী বা পাসওয়ার্ড নির্দিষ্ট করার দরকার নেই। আপনি যদি ভ্যাগ্রান্ট ব্যবহার করছেন তবে অবশ্যই আপনি তা করবেন না এবং আপনি যদি কমান্ড-লাইন থেকে উত্তরযোগ্যকে কল করছেন তবে আপনি ব্যবহারকারীকে নির্দিষ্ট করে --user=vagrantএটিতে পাসওয়ার্ড চাইতে চাইতে পারেন --ask-pass


1
আমার কেবলমাত্র আমার অবকাঠামোগত উন্নত সংস্থা করা দরকার। যদি সর্বদা আমি অসম্পূর্ণ ব্যবহার করবো: ভিজগ্রান্ট আমি এটি এমন কোনও স্থানে কনফিগারেশন রাখতে চাই যেখানে ডিফল্টভাবে উত্তরীয় লোড, তবে আমি জানি না কোথায়। প্রতিটি সংযোগ কার্যকর করতে হবে এটি ব্যবহার করতে হবে।
রবার্ট

ফাইলটির নাম রাখা উচিত group_vars/all/main.ymlনাকি সহজভাবে group_vars/all?
রিয়েলটিবো

sshpass"you must install the sshpass program"
user9869932

1
@ রিলতেবো ফাইলটির নাম অবশ্যই রাখা উচিত group_vars/all
xloto

1
যখন প্রতিটি হোস্টের পৃথক পাসওয়ার্ড থাকে তখন -কি ফর কইক পাস "সকলের" জন্য খুব মজাদার নয়। হ্যাঁ আপনার sshpass দরকার, এবং হ্যাঁ আপনার সম্ভবত known ss .ssh \ কনফিগারেশনটি আগে যাওয়ার আগে কখনও সংযুক্ত না থাকলে known \ .ssh \ কনফিগারেশনের আগে সংযুক্ত না হয়ে থাকলে আপনার পরিচিত_হোস্টের বীজ থাকা দরকার।
mckenzm

5

আমি মনে করি যে টানা জুড়ে সমস্ত সার্ভারের মধ্যে ssh কী ইনস্টলেশনটি ব্যবহার করা ভাল। আপনার কেবলমাত্র নোডের জন্য ssh-copy-id চালানো উচিত এবং আপনার ssh কী ব্যবহার করে উত্তরদাতার দক্ষতার জন্য আপনার ssh কী সর্বত্র ইনস্টল করা উচিত। প্লেবুক / ইনভেন্টরিতে পাসওয়ার্ড না সঞ্চয় করা এটি আরও সুরক্ষিত হবে।

এটি করার জন্য আপনার ssh কী জুড়ি তৈরি করা উচিত এবং পরে সমস্ত সার্ভারের জন্য ssh-copy-id চালানো উচিত ।


1
যদি কেউ আপনার কনফিগারেশন ফাইল থেকে পাসওয়ার্ড চুরি করতে পারে তবে তারা সম্ভবত আপনার এসএসএস কীগুলিতে সক্ষম হবেন। এবং ওপিএস প্রশ্নের উত্তর দেওয়ার সাথে এর কোনও মিল নেই। এই প্রশ্নটি বিকল্প সম্পর্কে মতামত জিজ্ঞাসা ছিল না।
মুহ ফুগেন

@ মুহফুগেন> আমি কীভাবে এগুলিকে ঠিক এক জায়গায় কনফিগার করতে পারি? এই পরামিতিগুলির সাথে কোনও ফাইল আছে? এটি একটি সঠিক বাক্যাংশ যা মতামতের দ্বার ছেড়ে দেয় পাশাপাশি প্রতিক্রিয়াও সঠিক দিকনির্দেশনা উপলব্ধি করে। চুরির কনফিগারেশন (যা কোথাও গিট রেপোতে থাকতে পারে) ব্যক্তিগত কী চুরি করার মতো নয়।
পোদারোক

4

তালিকা হোস্টগুলিতে নীচে যুক্ত করুন।

উত্তরযোগ্য <2.0 এর জন্য:

[all:vars]
ansible_connection=ssh
ansible_ssh_user=vagrant 
ansible_ssh_pass=vagrant

জন্য Ansible> = 2.0 :

[all:vars]
ansible_connection=ssh # actually default mode smart is OK
ansible_user=vagrant
ansible_pass=vagrant # or ansible_ssh_pass=vagrant

লিঙ্কটি উল্লেখ করেছে ansible_ssh_pass, না ansible_pass
ম্যাথিয়াস ওয়েইলার

2

দাবি অস্বীকার: আমি কেবল এটি ওএসএক্সে পরীক্ষা করেছি। বিভিন্ন দস্তাবেজের ভিত্তিতে, আমি এটি অন্যান্য প্ল্যাটফর্মগুলিতে কাজ করার আশা করি।

"প্রজেক্ট ডিরেক্টরি" ভ্যাগ্র্যান্ট প্রকল্পের জন্য ডিরেক্টরি নির্দেশকে বোঝায় - যে ডিরেক্টরিটিতে এটি থাকে Vagrantfile

ভ্যাগ্র্যান্ট দ্বারা স্বয়ংক্রিয়ভাবে উত্পন্ন জবাবদিহিত ইনভেন্টরি ফাইল:

ভ্যাগ্র্যান্ট ডিফল্ট উত্তরীয় সংযোগ ভার্স সহ একটি ইনভেন্টরি ফাইল তৈরি করে । এটি জন্য দেখুন <project directory>/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory

এই ফাইলটি প্রয়োজনীয় হিসাবে ভ্যাগ্র্যান্ট দ্বারা পুনরায় তৈরি করা হবে, সুতরাং ম্যানুয়াল সম্পাদনাগুলি ওভাররাইট করা হবে ten তবে ভ্যাগ্র্যান্ট ডক্স অনুসারে আপনি একাধিক মেশিন, গ্রুপ ওয়ার্স ইত্যাদি নির্দিষ্ট করতে পারেন Vagrantfileএবং সেগুলি এই ইনভেন্টরি ফাইলটিতে যুক্ত করা হবে।

এই ইনভেন্টরি ফাইলে ডিফল্টর জন্য উপযুক্ত কনফিগার করুন:

আপনি ansibleযখন প্রজেক্ট ডিরেক্টরিতে (হোস্টে) থাকবেন তখন এই ফাইলটি কমান্ড দ্বারা ডিফল্ট হিসাবে ব্যবহার করতে, ansible.cfgআপনার প্রকল্প ডিরেক্টরিতে এই বিষয়বস্তু সহ একটি ফাইল যুক্ত করুন , প্রয়োজন অনুসারে পথ পরিবর্তন করুন:

[defaults]
inventory = ./path/to/inventory

এই ইনভেন্টরি ফাইলটি ব্যবহৃত হচ্ছে কিনা তা নিশ্চিত করতে, এটি উত্তরীয় দ্বারা উল্লিখিত ডিফল্ট হিসাবে সন্ধান করুন:

(প্রকল্প ডিরেক্টরি থেকে)

$ ansible | grep inventory ERROR! Missing target hosts -i INVENTORY, --inventory-file=INVENTORY specify inventory host path (default=./.vagrant/provis ioners/ansible/inventory/vagrant_ansible_inventory) or

আপনার হোস্টগুলি নিশ্চিত করতে:

$ ansible all --list-hosts hosts (2): master slave

এই হোস্টগুলির সাথে জবাবদিহি ব্যবহার করা:

প্রকল্প ডিরেক্টরি থেকে, আপনি তারপরে ansibleসংজ্ঞায়িত হোস্টগুলির সাথে স্বাভাবিক হিসাবে ব্যবহার করতে সক্ষম হওয়া উচিত Vagrantfile

উদাহরণ স্বরূপ:

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