শেফ-ক্লায়েন্টকে দূর থেকে চালানোর জন্য আরও কি মার্জিত উপায় আছে?


22

শেফ ফাস্ট স্টার্ট টিউটোরিয়ালে এইভাবেই প্রস্তাবিত:

knife ssh name:mynode -a ipaddress  -x ubuntu -i mycredentials.pem "sudo chef-client"

এটা আসলে আনাড়ি। সত্যিই কি এর থেকে ভাল উপায় নেই, বা এমন ধারণা আছে যে প্রকৃত উত্পাদন পরিবেশে আপনার কাছে নোডগুলি স্বয়ংক্রিয়ভাবে আপডেট হবে?


1
আপনি কীভাবে এটি "আনাড়ি" বলে মনে করেন?
ওম্বল

9
ঠিক আছে, এইভাবে রাখুন। এটি আনাড়ি হবে না: "ছুরি আপডেট নাম: মায়নোড"। কীভাবে ক্লায়েন্টের সাথে সংযোগ স্থাপন করতে হবে এবং শেফ ক্লায়েন্টের কমান্ডের নাম (প্লাস এটি সুডোর অনুমতি নিয়ে চালানো দরকার) উভয়ের বানানটি আনাড়ি। ছুরি অন্যান্য বিড়বিড়তা দূরে বিস্মৃত করতে ভাল করে - কেন এটি না?
স্টিভ বেনেট

উত্তর:


11

আপনি কীভাবে জিনিসগুলি শুরু করতে শুরু করবেন এটি বেশ কিছুটা চাই তবে এটি কেবল একবার করা দরকার। শেফ-ক্লায়েন্টের প্রাথমিক রানটি সাধারণত শেফ-ক্লায়েন্ট ডিমনকে একটি init.d পরিষেবা হিসাবে সক্ষম করে এবং শুরু করে।

আপনি যদি সত্যিই এটি আরও মার্জিতভাবে করতে চান, আপনি ছুরি-এসএসএস খালি করতে পারেন এবং সরাসরি এসএসএস চালাতে পারেন:

ssh ubuntu@ipadddress -i mycredentials.pem sudo chef-client

এটি সম্ভবত দ্রুততর হবে, যেহেতু ছুরি-এসএস সার্চ শব্দটির সাথে মিলিত নোডগুলি আনার জন্য শেফ সার্ভারের বিরুদ্ধে অনুসন্ধান চালায় (এই ক্ষেত্রে name:dynode), আপনি যদি ইতিমধ্যে আইপি ঠিকানাটি জানেন তবে আপনাকে কঠোরভাবে করার দরকার নেই।


2
ঠিক আছে, আমি অনুমান করি যে প্রশ্নের উত্তর দিয়েছে - না, এর চেয়ে ভাল উপায় আর নেই। করুণা যে "ছুরি বুটস্ট্র্যাপ" আসলে শেফ-ক্লায়েন্ট চালাতে পারে না।
স্টিভ বেনেট

সেই বিশেষ সমস্যাটি সমাধান করার জন্য আমি সাধারণত আমার বুটস্ট্র্যাপ স্ক্রিপ্টের শেষে শেফ-ক্লায়েন্ট চালাই। তবে আপনি যদি ছুরি-এসএসকে অপছন্দ করেন তবে সম্ভবত আপনি ভাবেন যে ছুরি-বুটস্ট্র্যাপ ইন্টার্নালগুলিও সমানভাবে কদর্য are গিথুব এ একটি উদাহরণ স্ক্রিপ্ট আছে।
টিম পটার

1
ec2 server createছুরি প্লাগইন শুধু রান, SSH + + শেফ ক্লায়েন্ট দ্বারা অনুসরণ বুটস্ট্র্যাপ। সুতরাং এটি যদি আপনার আরও ভাল বোধ করে তবে শেফ লেখকরা বিশেষত স্মার্ট কিছু আবিষ্কার করতে পারেনি।
কিলজিলিন

শেফ-ক্লায়েন্ট যদি চালাতে কিছুটা সময় নেয় তবে আপনি একটি সময়সীমা পান। :( এসএসএস: হোস্ট এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স পোর্ট 22 এ সংযোগ করুন: সংযোগের সময়সীমা শেষ হয়েছে
gdanko

যে ক্ষেত্রে শেফ-ক্লায়েন্ট বুটস্ট্র্যাপের পরে ডেমন হিসাবে চালিত হয় এবং অন্তরাল সেট নির্বিশেষে, এটি সন্ধানের সবচেয়ে বড় উপায়: ssh ubuntu @ ipadddress -i mycredentials.pem -f -n "sudo killall -USR1 শেফ -client "। নোডের তালিকায় একসাথে এটি করার জন্য কাঁটাচালনা ssh।
অ্যান্ড্রু এস

12

একটি নির্দিষ্ট ভূমিকা বা রেসিপি রয়েছে এমন সমস্ত বাক্সে শেফ-ক্লায়েন্ট চালাতে আপনি ছুরি ssh ব্যবহার করতে পারেন :

knife ssh "role:web" "sudo chef-client" -x ubuntu --sudo 

অথবা আপনি ইসি 2 এ থাকলে:

knife ssh "role:web" "sudo chef-client" -x ubuntu -a ec2.public_hostname 

2

আপনি শেফ-ক্লায়েন্ট মোতায়েন করতে এবং চালাতে জবাবদিহি করতে পারেন।

$ ansible -i hosts all -a 'chef-client'

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

pip install ansible

আপনার ইনভেন্টরি ফাইলটি (উদাহরণস্বরূপ, "হোস্টগুলি" নামযুক্ত) এর মতো দেখতে লাগবে:

[all] host1.example.com ansible_user=root host2.example.com ansible_user=root host3.example.com ansibel_user=root

(লক্ষ্য করুন "সমস্ত" আমাদের উদাহরণের জন্য কনফিগারেশন ফাইলে গ্রুপিংয়ের নাম - এটি স্বেচ্ছাসেবী এবং যে কোনও কিছু হতে পারে Your ইত্যাদি)

সুতরাং, আবার, সব একত্র করা:

> ansible -i hosts all -a 'chef-client'

অথবা হতে পারে:

> ansible -i hosts all -a 'systemctl status'


1
আমি এখানে আপনি কি করছেন তা দেখতে পাচ্ছি ...;)
স্পেশাল

0

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

অ্যাডহক এক্সিকিউশনের জন্য, জেনকিন্স কাজটি নোডের জন্য রান_লিস্টটি পরিবর্তন করতে এবং পছন্দসই নোডে শেফ-ক্লায়েন্টকে চালানোর জন্য এসএসএইচ প্লাগইন ব্যবহার করার জন্য ছুরি কমান্ডগুলি কার্যকর করে।


0

এটি অত্যন্ত দুঃখের বিষয় যে ক্লায়েন্টকে শেফ করার জন্য একটি কমান্ড প্রেরণ করতে আমাদের ssh আন্ডারলাইন ব্যবহার করতে হবে।

দেখে মনে হচ্ছে যে প্রতিটি শেফ ক্লায়েন্ট শেফ সার্ভারের সাথে একটি সুরক্ষিত সংযোগ স্থাপন করেছে, তবে শেফ সার্ভার সেই সুরক্ষিত সংযোগের উপর কোনও কমান্ড মাল্টিপ্লেক্সার সরবরাহ করে না, কেন?


0

chef-runশেফ ওয়ার্কস্টেশনটিতে একটি নতুন কমান্ড রয়েছে:

chef-run server_name resource_name

এটি chef-clientউপস্থিত না থাকলে এবং আপনার উল্লেখ করা সংস্থান বা রান্নাঘরটি চালিত না হলে এটি ইনস্টল হবে ।

টিউটোরিয়াল: https://learn.chef.io/modules/try-chef-infra#/

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