পুতুলের সাথে / ইত্যাদি / ডিফল্ট / অক্ষম করা পরিষেবাগুলির ফিক্সিং?


13

আমি পুতুল ব্যবহার করছি (তাত্ত্বিকভাবে) ইনস্টলেশন শুরু করার জন্য এনপিসিডি পেতে, তবে উবুন্টুতে, সেই পরিষেবাটি আরএন = "না" এর / etc / default / npcd এ ডিফল্ট সেটিংসের সাথে ইনস্টল হয়:

 $ cat /etc/default/npcd 
 # Default settings for the NPCD init script.

 # Should NPCD be started? ("yes" to enable)
 RUN="no"

 # Additional options that are passed to the daemon.
 DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg"

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

    service { "npcd":
       enable   => true,
       ensure   => "running",
       require  => Package["pnp4nagios"],
    }   

তবে হায়, এটি হয় না এবং আসলে / etc / ডিফল্ট ফাইলটি পুনরায় লেখার খুব কম, আমি কী করব তা নিশ্চিত নই। আমি যে পরিষেবাটি দেখছি না তা সক্ষম করার কোনও সহজ উপায় আছে?

রেকর্ডের জন্য, আমি উবুন্টু 12.04.2 এবং পুতুল সংস্করণ 3.1.0 ব্যবহার করছি।


কেন কেবল /etc/default/npcdএকটি fileসংস্থান দিয়ে পুনর্লিখন করবেন না ? fileউপর নির্ভর করে package, এবং serviceউপর নির্ভর করে file। আমি সবসময় ফাইলগুলি সম্পাদনা করার মাধ্যমে sedবা augeasযদি আমি এড়াতে পারি তবেই তা অবহেলা করি।
2:30:30 মিনিটে লারস্কে

উত্তর:


12

ফাইলটি আপডেট করা এবং তারপরে পরিষেবাটি পুনরায় চালু করা একমাত্র উপায়। আপনি একটি নতুন ফাইল পুশ করতে পারেন এবং তারপরে পরিষেবাটি প্রয়োজনীয় করে তুলতে পারেন; এই বিষয়বস্তু আপডেট করা হলে পরিষেবাটি সঠিকভাবে শুরু হবে।

আপনি যদি ফাইলটি পুরোপুরি প্রতিস্থাপন করতে না চান তবে আপনি ডিফল্ট ফাইলের একক লাইনটি সংশোধন করার জন্য পুতুল অজিয়াস সরঞ্জামটি ব্যবহার করতে পারেন।

ডেবিয়ান এবং এর ডেরিভেটিভসে কয়েকটি পরিষেবা রয়েছে যা প্যাকেজটি ইনস্টল করার পরে অটোস্টার্ট হয় না যদি না এটি / etc / ডিফল্ট সক্রিয় থাকে। ধরণের বিরক্তিকর।

সম্পাদনা: এফওয়াইআইআইআই স্ক্রিপ্টটি আসলে সেই ফাইলটি থেকে মানগুলি পড়ছে (কেবল এটি সাধারণত উত্সর্গাদিত হয়)।


1
মজাদার. আমি একটি বাগ ফাইল করার মন আছে। যদি আপনি "সক্ষম "টিকে" সত্য "হিসাবে সেট করেন, তবে এটি কেবলমাত্র বোঝায় যে এটি আসলে স্ক্রিপ্টটি সক্ষম করে (কোনও স্তরকে চালানোর জন্য বিভিন্ন সিমলিংকের পাশাপাশি)।
ম্যাট সিমন্স

আমি মনে করি যে পুতুলের পক্ষে কোনও পরিষেবাটির "ডিফল্ট" ফাইল আপডেট হওয়া দরকার কিনা তা জানার কোনও সহজ উপায় নেই যাতে তারা এটি বেক না করে; বিতরণ সহ একটি বাগ ফাইল করা সহজ হতে পারে। আমার সন্দেহ: আপনি কোনও ট্র্যাকশন পাবেন যদিও :-)
লুক

"ডিফল্ট_সার্ভিস" এর মতো একটি নামক সংজ্ঞায়িত ধরণ ব্যবহার করুন যার মধ্যে একটি পরিষেবা সংস্থান রয়েছে, এবং একটি এক্সিকিউটিভ রিসোর্স যা প্রয়োজন হলে সেড ব্যবহার করে জায়গায় ফাইল আপডেট করে, বা একটি ফাইল রিসোর্স যা আউজিয়ার ব্যবহার করে, আপনার উপর নির্ভর করে।
সাইরেক্স

@ ম্যাটসিম্মনস এই প্যাকেজগুলি তৈরি করা লোকেদের অবশ্যই সিমলিংকগুলি ব্যবহার করা এবং update-rc.dপরিষেবাটি সক্রিয় / নিষ্ক্রিয় করার জন্য করা উচিত, /etc/defaultএটি নয় - এটি পরিষেবা পরিচালনা করার মানক উপায় নয়, সুতরাং পুতুলের নিয়ন্ত্রণের বাইরে।
শেন ম্যাডেন

8

এর জাহান্নামের জন্য আমি আমার 12.04 মেশিনে কয়েকটি স্ট্যান্ডার্ড ডেমন পরীক্ষা করেছি। আপনাকে ফাইলটি পরিচালনা করতে হবে, সময়মতো এই সময়ে কোনও উপায় নেই।

snmpd

# snmpd control (yes means start daemon).
SNMPDRUN=yes

collectd

# 0: start collectd on boot, 1: do not start collectd on boot
# default: 0
DISABLE=0

পুতুল

# Start puppet on boot?
START=yes

mdadm ব্যবহার

# START_DAEMON:
#   should mdadm start the MD monitoring daemon during boot?
START_DAEMON=true

HAProxy

# Set ENABLED to 1 if you want the init script to start haproxy.
ENABLED=1

6

আমি মনে করি এটির একটি সম্ভাব্য উপায় হ'ল পুতুলের সাথে অউজিয়ার সরঞ্জাম ব্যবহার করা, যেমন

augeas { "npcd_default":
  changes => [
    "set /files/etc/default/npcd/Run yes",
  ],
}

পড়ুন ম্যানুয়াল বিস্তারিত জানার জন্য


0

আমি ফাইলটি পরিবর্তন করতে সেড ব্যবহার করি use ইউজিয়াসকে ওভারকিলের মতো মনে হচ্ছে।

sed -i /etc/default/puppet -e 's/START=no/START=yes/'

আইডিয়া এখান থেকে নেওয়া:

http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/

সুতরাং, আপনার ক্ষেত্রে

sed -i /etc/default/npcd -e 's/RUN="no"/RUN="yes"/'

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

আমার উদাহরণটি ছিল ক্লাউড-থ্রির মাধ্যমে পুতুলের বুটস্ট্র্যাপিং থেকে। আমি অউজিয়ার দিকে তাকালাম এবং তাত্ক্ষণিকভাবে যদি সম্ভব হয় তবে তা এড়ানোর সিদ্ধান্ত নিয়েছি। এখন পর্যন্ত আমার আর অজিয়ার দরকার নেই বা শুরু করার জন্য পুতুলের পাশাপাশি অন্য কোনও পরিষেবা বুটস্ট্র্যাপ করার দরকার নেই = হ্যাঁ।
dmourati

আমি আপনার দৃষ্টিভঙ্গি সম্পর্কে সত্যিই কৌতূহলী। আমি আপনার বক্তব্যটি দেখতে পাচ্ছি, তবে অগুয়েস এবং পুতুল ইউনিফাইড পরিচালনার জন্য বিমূর্ত শীর্ষ স্তরের ইন্টারফেস সরবরাহ করার মত আদর্শটি ব্যবহার করছেন না? আপনি যদি আউজিদের পছন্দ না করেন তবে আপনি পুতুলের মতো কীভাবে আসবেন? তখন জবাবদিহি হবে না কেন?
ডিউক্লিওন

আমি মনে করি আরও ভাল পদ্ধতির স্ট্যাব বা টুকরো টুকরো কনফিগারেশন ফাইলগুলি যেমন অ্যাপাচি কনফিডেড, সিসেক্টল.ডি, sudoers.d, ইত্যাদিতে সম্পাদনা করা হচ্ছে ইত্যাদি অন্যান্য কনফিগারেশন ফাইলগুলির মাধ্যমে আপনার উপায়কে টুকরো টুকরো করার চেষ্টা করা আমার কাছে আবেদন করে না। সবচেয়ে সহজ ক্ষেত্রে, যেখানে .d ডিরেক্টরিগুলি সহ খণ্ডিত কনফিগারেশন ফাইলগুলির অস্তিত্ব নেই, সেড / পার্ল / যা কিছু ব্যবহার করুন। এভাবে অউজিয়াদের দরকার নেই।
dmourati

0

augeasপুপেতে টাইপের সাহায্যে এটি করা এক উপায় (@ ডুকলিয়নের পরামর্শ অনুসারে)।

আর একটি উপায় হল augeasprovidersমডিউলটিshellvar সরবরাহকারীর সাথে ব্যবহার করা :

shellvar { 'npcd_default':
  ensure   => present,
  target   => '/etc/default/npcd',
  variable => 'RUN',
  value    => 'yes',
  comment  => 'We want npcd to run',
}

এটি আরও ভাল কারণ অজিয়াস রুবি সরবরাহকারী দ্বারা পরিষ্কার ব্যবহার করা হবে। এটি স্বয়ংক্রিয়ভাবে উদ্ধৃতি ও মন্তব্য পরিচালনা করবে।

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