বিবিবিকেটের মতো সরকারী সিআই এর এবং সোর্স কন্ট্রোল রিপোজিটরিগুলিতে উত্তরযোগ্য ভল্ট ব্যবহার করার জন্য সেরা অনুশীলনগুলি কী কী?


11

ভূমিকা

গিটল্যাব-সি-এর মতো একটি বেসরকারী সিআই এবং সোর্স কন্ট্রোল রিপোজিটরিগুলিতে সার্ভারে একটি ~ / .vault_pass.txt অনুলিপি করা সম্ভব এবং সিআই দ্বারা এঞ্জিবল ব্যবহার করে ফাইল ডিক্রিপ্ট করতে দেওয়া সম্ভব।

সমস্যা

বিটবকেটের মতো পাবলিক সিআই এবং সোর্স কন্ট্রোল রিপোজিটরিগুলিতে নিজে সিআই সার্ভারে একটি। / .Vault_pass.txt অনুলিপি করা সম্ভব নয়।

আলোচনা

বিটবকেটে এনক্রিপ্ট করা ভেরিয়েবলগুলি সংজ্ঞায়িত করা সম্ভব হয়, তবে এই ফাইলটি কেবলমাত্র ভোল্ট সম্পর্কিত ভেরিয়েবলগুলি পরীক্ষা করা হয়:

  • ANSIBLE_ASK_VAULT_PASS
  • ANSIBLE_VAULT_PASSWORD_FILE

এই ভেরিয়েবলগুলি ইস্যুটি সমাধান করার জন্য বিকল্প নয় ANSIBLE_ASK_VAULT_PASSকারণ সেটটি ansible-vaultএখনও প্রম্পট করার সময়:

user@host $
Vault password:

যখন একই পাসওয়ার্ডটি প্রবেশ করা হয় এটি এনক্রিপ্ট করা ফাইলটি খুলতে পারে, তবে উদ্দেশ্যটি কোনও ফাইলের প্রয়োজন বা প্রম্পটে কোনও পাসওয়ার্ড প্রবেশ না করেই ফাইলটি খোলানো।

সমস্যাটি সমাধানের আর একটি প্রচেষ্টা চলছিল export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>, তবে ইন্টারেক্টিভ মোডটি বহাল রয়েছে।

অন্য বিকল্পটি হ'ল export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt, তবে তারপরে এই ফাইলটি সংগ্রহস্থলে পুশ করা দরকার, তবে উত্স কন্ট্রোল সংগ্রহস্থলগুলিতে পাসওয়ার্ড থাকা উচিত নয়।


2
হাই @ 030, আপনি সিআই বলতে কী বোঝাতে চেয়েছেন? আমার কাছে এটির অর্থ কনটিনিউস ইন্টিগ্রেশন , তবে গিটল্যাব এবং বিটবকেট উভয়ই সোর্স কন্ট্রোল রিপোজিটরিগুলি - সিআই প্রসারিত হলে প্রশ্নটি আরও পরিষ্কার হবে।
রিচার্ড স্লেটার 10

উত্তর:


8

--vault-password-fileপরিবর্তে একটি এক্সিকিউটেবল স্ক্রিপ্ট যে stdout লিখতে নির্দেশ করতে পারেন। এই অল্প-পরিচিত বৈশিষ্ট্যটি আপনার সমস্যার সমাধান করা উচিত।

প্রথমে একটি সহজ, সম্পাদনযোগ্য স্ক্রিপ্ট লিখুন যা একটি সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল প্রিন্ট করে এবং আপনার উত্স নিয়ন্ত্রণে এটি পরীক্ষা করে। তারপরে, পরিবেশটিকে আপনার উত্তরযোগ্য-ভল্টের গোপনে পরিবেশ পরিবর্তনশীল সেট করতে বিটবকেটের এনক্রিপ্ট করা ভেরিয়েবল বৈশিষ্ট্যটি ব্যবহার করুন। অবশেষে, এর মতো কার্যকর করুন:

ansible-playbook site.yml --vault-password-file ./mypass.sh

তথ্যসূত্র:

  1. http://docs.ansible.com/ansible/playbooks_vault.html#running-a-playbook-with-vault

  2. https://groups.google.com/forum/#!topic/ansible-devel/1vFc3y6Ogto


এবং তারপরে মাইপ্যাস.শ echo $VARউদাহরণস্বরূপ থাকবে এবং এই ভার্সনটি বিটবকেট ইউআইতে সেট করা হবে?
030

হা! বিকল্পভাবে, এখানে একটি পাইথনের উদাহরণ রয়েছে: stackoverflow.com/questions/4906977/…
উডল্যান্ড হান্টার

([Errno 8] Exec format error). If this is not a script, remove the executable bit from the file.
030

1

ব্যবহার

ansible-playbook site.yml --vault-password-file ./mypass.sh

ফলে:

ERROR! Problem running vault password script / p a t h / t o
/ e c h o _ v a u l t _ p a s s . s h ([Errno 8] Exec format error). If this is 
not a script, remove the executable bit from the file.

এই পোস্টের উপর ভিত্তি করে নিম্নলিখিতটি বিটবাকেট-পাইপলাইনে সংজ্ঞায়িত করা হয়েছিল:

image: docker:latest

pipelines:
  default:
    - step:
        script:
          - echo $ANSIBLE_VAULT_PASSWORD > .vault_password.txt
          - ansible-playbook -i ansible/inventory ansible/site.yml --vault-password-file .vault_password.txt

-1

আপনি একটি পরীক্ষা সেট আপ করতে পারেন যা উত্পাদন চালায় না, এবং তাদের জন্য বিভিন্ন ফাইল লোড করা।

একটি হোস্ট_ওয়ার্স / লোকালহোস্ট / ভল্ট তৈরি করুন যা কেবলমাত্র স্থানীয় পরীক্ষার ইনস্টলেশন জন্য কাজ করে।

এইভাবে আপনি একটি খোলা ভল্টের পাসওয়ার্ড ব্যবহার করতে পারেন যা কেবলমাত্র সেই স্থানীয় হোস্ট ভল্টের জন্যই কাজ করে।

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