লবণের স্তম্ভের মাধ্যমে মাস্টার থেকে মিনিয়ন পর্যন্ত এসএস কী স্থাপন করুন


11

আমার কাছে দুটি এসএস কী রয়েছে যা আমি আমার মিনিনের একটিতে স্থাপন করার চেষ্টা করছি। তবে আমি এটি মোতায়েন করার জন্য পেয়েছি বলে মনে হচ্ছে না। এটি ত্রুটিযুক্ত। এখানে init.slsস্তম্ভগুলি রয়েছে:

/xxx/yyy/zzz/id_rsa:
  file.managed:
    - source: salt://private/id_rsa

/xxx/yyy/zz/id_rsa.pub:
  file.managed:
    - source: salt://private/id_rsa.pub

আমার init.slsরাষ্ট্রটি এখানে :

ssh:
  file.managed:
    - name: {{ pillar['private'] }}

আমি অবশ্যই কিছু ভুল করছি (স্পষ্টতই), তবে আমি নিশ্চিত নই কি। কোন পরামর্শ?


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

আপনি কি আপনার প্রশ্নের উত্তর খুঁজে পেয়েছেন?
ড্যান গার্থওয়েট

হ্যাঁ, আমি বিশ্বাস করি আমি করেছি
নিরাপদ 2

উত্তর:


13

সল্ট পিলার সিস্টেমে কোনও init.sls ফাইল নেই। উভয় রাজ্য এবং স্তম্ভের একটি শীর্ষ.এসএসএস ফাইল রয়েছে। যে সমস্ত রাজ্যগুলি উপ-ডিরেক্টরি রয়েছে তাদের একটি init.sls ফাইল থাকতে পারে।

পদক্ষেপ 1: আপনার ব্যবহারকারীদের /srv/pillar/users.sls এ সংজ্ঞায়িত করুন

users:

  - name: fred
    fullname: Fred Flintstone
    email: fflintstone@slaterockandgravel.com
    uid: 4001
    gid: 4001
    shell: /bin/bash
    groups:
      - bowling
    shadow: $6$Sasdf/Ss$asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfsadfasdfsadfsadfsdf
    authkey: ssh-dss AAAAasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafa = fflinstone@slaterockandgravel.com
    sshpub: ssh-dss AAAAasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafaasdfasdfasdfasdfasdfsadfsadfsadfsadfasdfasdfsdafsdafa = fflinstone@slaterockandgravel.com

  - name: barney
    fullname: Barney Rubble
    email: brubbel@slaterockandgravel.com
    uid: 4002
    gid: 4002
    shell: /bin/bash
    groups:
      - bowling
    shadow: $6$Suiop/Ss$uiopuiopuiopuiopuiopuiopuiopuiopuiopuiopuiopsadfuiopsadfsadfsdf
    authkey: ssh-dss AAAAuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafa = fflinstone@slaterockandgravel.com
    sshpub: ssh-dss AAAAuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafauiopuiopuiopuiopuiopsadfsadfsadfsadfuiopuiopsdafsdafa = fflinstone@slaterockandgravel.com

পদক্ষেপ 2: /srv/pillar/top.sls এ নতুন স্তম্ভটি যুক্ত করুন

base:
  'testminion':
    - users

পদক্ষেপ 3: /srv/salt/user/init.sls এ স্তম্ভের মানচিত্রের জন্য জিনজা ব্যবহার করুন

{% for user in pillar['users'] %}
user_{{user.name}}:
  group.present:
    - name: {{user.name}}
    - gid: {{user.gid}}

  user.present:
    - name: {{user.name}}
    - fullname: {{user.fullname}}
    - password: {{user.shadow}}
    - shell: {{user.shell}}
    - uid: {{user.uid}}
    - gid: {{user.gid}}
    {% if user.groups %}
    - optional_groups:
      {% for group in user.groups %}
      - {{group}}
      {% endfor %}
    {% endif %}
    - require:
      - group: user_{{user.name}}

  file.directory:
    - name: /home/{{user.name}}
    - user: {{user.name}}
    - group: {{user.name}}
    - mode: 0751
    - makedirs: True

user_{{user.name}}_forward:
  file.append:
    - name: /home/{{user.name}}/.forward
    - text: {{user.email}}

user_{{user.name}}_sshdir:
  file.directory:
    - name: /home/{{user.name}}/.ssh
    - user: {{user.name}}
    - group: {{user.name}}
    - mode: 0700

{% if 'authkey' in user %}
user_{{user.name}}_authkeys:
  ssh_auth.present:
    - user: {{user.name}}
    - name: {{user.authkey}}
{% endif %}

{% if 'sshpriv' in user %}
user_{{user.name}}_sshpriv:
  file.managed:
    - name: /home/{{user.name}}/.ssh/id_rsa
    - user: {{user.name}}
    - group: {{user.name}}
    - mode: 0600
    - contents_pillar: {{user.sshpriv}}
{% endif %}

{% if 'sshpub' in user %}
user_{{user.name}}_sshpub:
  file.managed:
    - name: /home/{{user.name}}/.ssh/id_rsa.pub
    - user: {{user.name}}
    - group: {{user.name}}
    - mode: 0600
    - contents_pillar: {{user.sshpub}}
{% endif %}
{% endfor %} # user in users
# vim: ft=yaml tabstop=2 sts=2 sw=2 et ai si

নতুন স্তম্ভের সাথে মাইনগুলি সিঙ্ক করতে ভুলবেন না!

salt targetminions saltutil.refresh_pillar

আমি এই উদাহরণটি লবণের জন্য কাজ করতে অক্ষম 2014.7.1; এটি একটি ত্রুটি দেয় বলে মনে হয়: "জিনজা ভেরিয়েবল 'স্ট্রিং অবজেক্ট'-এর কোনও নাম' নাম 'নেই। আমি ব্যবহারকারী / init.sls এ এরকম কিছু করার আশ্রয় নিয়েছি: {% for user, data in salt['pillar.get']('users', {}).iteritems() %}এটি পুরোপুরি এসএলএস ফাইলকে পরিবর্তিত করবে; যদি আমি একটি কাজের উদাহরণ নিয়ে এসেছি তবে আমি এটি পোস্ট করব।
মাইক এস

অনুসরণ: আপনি যদি প্রিয় ভ্রমণকারী, এই কোডটি ব্যবহার করতে চাইছেন তবে আমি বিশ্বাস করি যে এটিতে বেশ কয়েকটি ত্রুটি রয়েছে। উদাহরণস্বরূপ, "ফ্রেড" এবং "বার্নি" এর পরে থাকা কলোনগুলি নুনকে বারফের জন্য তৈরি করবে, যেমন "শেষ হবে" এবং "যদি শেষ হয়" (তাদের সেখানে জায়গা না থাকা উচিত)। আবার আমি সন্দেহ করি যে নির্মাণের জন্য প্রাথমিকটি ত্রুটিযুক্ত তবে আমি এই সময়ে লবণের বিষয়ে খুব বেশি জানি না তাই আমি নিশ্চিত হতে পারি না। ক্যাভেট প্রোগ্রামার। নিজের জন্য, আমি iteritems () ধারণাটি নিয়ে কাজ করতে যাচ্ছি।
মাইক এস

দুঃখিত, ড্যান, আমি এখনও টেস্টমিনিয়ন পেয়েছি: ডেটা সংকলন করতে ব্যর্থ: ---------- এসএলএস রেন্ডারিং বেস: ব্যবহারকারীদের ব্যর্থ: জিনজা ভেরিয়েবলের 'স্ট্রেড অবজেক্ট' এর কোনও বৈশিষ্ট্য নেই 'চালানোর সময়': নুন টেস্টমিনিয়ন স্টেট। হাইস্টেট টেস্ট = সত্য .... আমি আপনার লেখাটি ভারব্যাটিয়াম উপরে নকল করেছি। কেবলমাত্র আমার /srv/salt/top.sls ফাইলটি যুক্ত ছিল যা একটি সরল 3-লাইনার (বেস :, '*' :, এবং ব্যবহারকারীর))
মাইক এস

আমি একটি ডকার পাত্রে স্পিন করব এবং এটিকে বাছাই করব, যদি আপনি এটি না পেয়ে থাকেন তবে?
ড্যান গার্থওয়েট

"ডাটা সংকলন করতে ব্যর্থ হয়েছে" /srv/pillar/top.sls এ '.sls' ফাইলের প্রত্যয় দ্বারা ঘটেছিল। আমিও সমস্যায় পড়েছি Than দয়া করে মনে রাখবেন, আমি এর অনেকটা আবার লিখেছি। আমাকে আপাতত ইউজার.এসএইচপ্রিভ ছাড়তে হয়েছিল, এখনই দেরি হচ্ছে এবং আমি টেক্সট সামগ্রীতে --- নিয়ে সমস্যায় পড়তে থাকি।
ড্যান গার্থওয়েট

1

সম্ভবত এটি লক্ষ করা উচিত যে মূল প্রশ্নের সাথে সম্পর্কিত, source: salt://...ফর্ম্যাটটি যদি কাজ না করে তবে অন্য একটি সহজ সমাধান রয়েছে file.managed- যেমনটি এখনও salt-sshবাগের কারণে ঘটেছিল https://github.com/saltstack/salt/issues/38458 যা ছিল যেহেতু স্থির করা হয়েছে - এবং তা হ'ল contents:ফাইল ট্রি বাহ্যিক স্তম্ভের সাথে স্যুইচ করা , যা মাস্টারে থাকা ফাইলগুলিও সমর্থন করে।

file_tree ext_pillarএ নথিভুক্ত করা https://docs.saltstack.com/en/latest/ref/pillar/all/salt.pillar.file_tree.html#module-salt.pillar.file_tree আজকাল। এটি 2015.5.0 সংস্করণ থেকে বিদ্যমান, সুতরাং এটি আসল প্রশ্ন এবং উত্তরের চেয়ে নতুন, তবুও এটি এমন একটি সমাধান যা আজ যুক্তিসঙ্গতভাবে উপলভ্য।

প্রকৃতপক্ষে, এটি https://docs.saltstack.com/en/latest/faq.html#is-it-possible-to-deploy-a-file-to-a-specific-minion-without এ FAQ এও রয়েছে -other-পুলিশ-থাকার অ্যাক্সেস টু এটা

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