পুতুলের সাথে একটি গোষ্ঠীতে একটি বিদ্যমান ব্যবহারকারী যুক্ত করা হচ্ছে


16

পুতুল 2.7.18 সহ একটি দলে কোনও বিদ্যমান ব্যবহারকারীকে যুক্ত করা কি সম্ভব?

আমাদের দুটি মডিউল রয়েছে, প্রত্যেকে একটি করে শ্রেণি নির্ধারণ করে:

  • মডিউল "ব্যবহারকারী" ব্যবহারকারী foo এবং ব্যবহারকারী বার সহ সমস্ত ব্যবহারকারী তৈরি করে।
  • মডিউল "সাবভার্সন" বিভিন্ন কনফ ফাইলের সাথে কাজ করে এবং গ্রুপ এসএনএন তৈরি করে।

আমরা মডিউল "সাবভার্সন" এর ভিতরে গ্রুপ এসএনএন-তে ব্যবহারকারী foo যুক্ত করতে চাই।

বিদ্যমান বৈশিষ্ট্য অনুরোধে বর্ণিত হিসাবে আমি সদস্যতার পরামিতিটি চেষ্টা করেছি :

group {
"svn":
    ensure  => present,
    gid     => xxxxx;
}
user {
"foo":
    group      => ["svn"],
    membership => minimum;
}

তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

ত্রুটি: দূরবর্তী সার্ভার থেকে ক্যাটালগ পুনরুদ্ধার করা যায়নি: সার্ভারে ত্রুটি 400: সদৃশ ঘোষণা: ব্যবহারকারী [foo] ইতিমধ্যে ফাইল /pathto/modules/sversvers//ififes/init.pp লাইন xx এ ফাইল হিসাবে ঘোষণা করা হয়েছে; নোড myserver.example.com এ /pathto/modules/users/manifests/init.pp:xxx এ পুনরায় ঘোষণা করতে পারবেন না

এই বৈশিষ্ট্যটি ইতিমধ্যে কার্যকর করা হয়েছে? যদি না হয়, ভাল কাজ আছে?

উত্তর:


15

আপনি যদি ব্যবহারকারীদের ভার্চুয়াল সংস্থান হিসাবে ঘোষণা করেন তবে আপনি 'উপলব্ধি' বা সংগ্রহ সিনট্যাক্স (ব্যবহারকারীর <| ... |>) ব্যবহার করতে পারেন। এখানে একটি উদাহরণ:

@user { 'foo':
  groups     => ['somegroup'],
  membership => minimum,
}

তারপরে সেই সংকলন সংগ্রহের সাথে ভার্চুয়াল ব্যবহারকারীটিকে উপলব্ধি করুন:

User <| title == foo |>

এবং অন্য কোথাও আপনি প্লাস্টিনমেন্ট ব্যবহার করে সেই ভার্চুয়াল সংস্থার পরামিতিগুলিতে যুক্ত করতে পারেন:

User <| title == foo |> { groups +> "svn" }

সুতরাং আমি অনুমান করি এই মুহুর্তে ভার্চুয়াল রিসোর্সগুলি ছাড়া কোনও বিকল্প নেই :( উত্তরের জন্য অনেক অনেক ধন্যবাদ

1
পুতুল সংস্করণগুলির মধ্যে একটি টাইপো বা বৈশিষ্ট্য পরিবর্তিত হয়েছে: এটি গ্রুপ নয় তবে গোষ্ঠীগুলি (বহুবচন)। পুতুল
৩.২.২

1
একটি সংক্ষিপ্ত উদাহরণ সহ কেউ এই প্রসারিত করতে পারেন।
এমসচুয়েট

22

পুতুল ভার্চুয়াল রিসোর্সগুলি হ'ল এটি করার সঠিক উপায় - তবে আপনি যদি ব্যবহারকারীর সংজ্ঞাগুলি পরিবর্তন করতে না পারেন এবং এর মধ্যে যদি কোনও কার্যনির্বাহী সংশোধন প্রয়োজন হয় তবে নিম্নলিখিতটি ভয়াবহ এবং হ্যাকি, তবে কাজ করবে:

exec { 'foo somegroup membership':
  unless  => '/bin/grep -q "somegroup\\S*foo" /etc/group',
  command => '/sbin/usermod -aG somegroup foo',
  require => User['foo'],
}

মূলত আমরা কেবল যাচাই করে নিই যে কোনও গোষ্ঠীতে এখনও ইউজার foo রয়েছে কিনা ... যদি তা না হয় তবে foo এর সাথে সম্পর্কিত এমন গ্রুপগুলি ছাড়াও এটি যুক্ত করতে সাধারণ ইউজারমড কমান্ড ব্যবহার করুন।


1
পুতুল এক্সিকিউটেবলের জন্য পুরোপুরি যোগ্য পাথকে জয় করতে পারে। এটি প্রতিফলিত করার জন্য সম্পাদিত।
h7r

2
ভয়ঙ্কর এবং হ্যাকি তবে সত্যই সহায়ক। আমি আশা করছিলাম যে কোনও গ্রুপকে একজন ব্যবহারকারী যুক্ত করার মতো ধারণাগতভাবে সহজ কিছু করার জন্য একটি নতুন ভাষা নির্মাণ শিখতে হবে না।
বিলমান

1
সম্ভবত আরও সঠিক (যদিও এখনও হ্যাকি থাকা অবস্থায়) উপায়টি হ'ল getent group somegroup|cut -d: -f4|grep -q fooআমরা ব্যবহার করছি তা অনুমান করার জন্য ব্যবহার করা হবে /etc/group
ফলস্ট্রো

সুপার সহায়ক - ধন্যবাদ। সম্পূর্ণ পথটি অনুসরণ হিসাবে অন্তর্ভুক্ত করতে আমাকে "ততক্ষণ" এবং "ব্যবহারকারীর" পরিবর্তন করতে হয়েছিল: যতক্ষণ না => "/ ব্যবহারকারী / বিন / গ্রেপ ..." কমান্ড => "/ ব্যবহারকারী / বিন / ব্যবহারকার ..."
জেএনপি ওয়েব বিকাশকারী

@JnpWebDeveloper এবং তাদের মতো তাদের জন্য: ডকুমেন্টেশন অনুসারে আপনি একটি পরামিতিও নির্দিষ্ট করতে পারেন path। আমি বিশ্বব্যাপী রিসোর্স ডিফল্ট থাকার পরামর্শ দিচ্ছি, সম্ভবত এটি প্রথম $PATHদিক থেকে টানবে।
সিনকোডেনদা

2

ধন্যবাদ - অবশ্যই কুরুচিপূর্ণ হ্যাক, তবে এটি কাজটি করে gets 'নাগিওস' গোষ্ঠীতে 'এনআরপি' যুক্ত করতে এখানে একটি প্যাথড উদাহরণ (উপরের মন্তব্যের সংমিশ্রণ) দেওয়া আছে। আমি প্যাকেজটি প্রয়োজনীয় হিসাবে ব্যবহার করেছি কারণ এখানে পুতুলের চেয়ে RPM সরবরাহকারীর সরবরাহ করা হয়েছে।

  exec {"nrpe nagios membership":
    unless => "/bin/getent group nagios|/bin/cut -d: -f4|/bin/grep -q nrpe",
    command => "/usr/sbin/usermod -a -G nagios nrpe",
    require => Package['nrpe'],
  }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.