জবাবদিহি ইনভেন্টরি ফাইলটিতে হোস্ট_কি_চেকিং = মিথ্যা কীভাবে সেট করবেন?


113

আমি ansible-playbook' vagrant provision' এর পরিবর্তে কমান্ড ব্যবহার করতে চাই । তবে সেটিং host_key_checking=falseমধ্যে hostsফাইল কাজ বলে মনে হচ্ছে না।

# hosts file
vagrant ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key 
ansible_ssh_user=vagrant ansible_ssh_port=2222 ansible_ssh_host=127.0.0.1 
host_key_checking=false

এর বাইরে কি কোনও কনফিগারেশন ভেরিয়েবল Vagrantfileএই মানটিকে ওভাররাইড করতে পারে?

উত্তর:


182

২০১৪ সালে আমি এর উত্তর দিয়েছি বলে, আমি উত্তরের আরও সাম্প্রতিক সংস্করণগুলির জন্য অ্যাকাউন্টে আমার উত্তর আপডেট করেছি।

হ্যাঁ, আপনি এটি হোস্ট / ইনভেন্টরি স্তরে ( নতুন উত্তরযোগ্য সংস্করণে যা সম্ভব হয়ে উঠেছে ) বা বৈশ্বিক স্তরে এটি করতে পারেন:

তালিকা :

নিম্নলিখিত যোগ করুন।

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

হোস্ট :

নিম্নলিখিত যোগ করুন।

ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

হোস্ট / ইনভেন্টরি বিকল্পগুলি সংযোগের ধরণের সাথে কাজ করবে sshএবং না paramiko। কিছু লোক দৃ strongly়তার সাথে তর্ক করতে পারে যে ইনভেন্টরি এবং হোস্টগুলি আরও সুরক্ষিত কারণ সুযোগটি আরও সীমাবদ্ধ।

বিশ্ব:

উত্তরযোগ্য ব্যবহারকারী গাইড - হোস্ট কী চেক করা

  • আপনি এটি ফাইল /etc/ansible/ansible.cfgবা ~/.ansible.cfgফাইলের মাধ্যমে করতে পারেন:

    [defaults]
    host_key_checking = False
    
  • অথবা আপনি ভেরিয়েবল সেটআপ এবং এনভাইড করতে পারেন (এটি আরও নতুন উত্তরযোগ্য সংস্করণে কাজ না করে):

    export ANSIBLE_HOST_KEY_CHECKING=False
    

32
আমি উত্তরসূচক ১..2.২ ব্যবহার করছি এবং আমার অভিজ্ঞতা হ'ল পরিবেশ পরিবর্তনশীল ANSIBLE_HOST_KEY_CHECKINGকাজ করে তবে কার্যকর -e 'host_key_checking=False'হয় না।
মার্ক আব্রামোভিটস

6
আপনার প্রথম বিবৃতি "হ্যাঁ, তবে হোস্ট / ইনভেন্টরি স্তরে নয়" মিথ্যা। আপনি ansible_ssh_common_args='-o StrictHostKeyChecking=no'বাansible_ssh_extra_args='-o StrictHostKeyChecking=no'
শামেল লি

1
আমার প্লেবুক চালানোর আগে কেবলমাত্র শেষ বিকল্পটি আমার জন্য কাজ করেছিল (ANSIBLE_HOST_KEY_CHECKING = মিথ্যা রফতানি করুন)।
টেড-কে 42

1
"হ্যাঁ, তবে হোস্ট / ইনভেন্টরি স্তরে নয়।" - মিথ্যা হিসাবে দেখানো হয়েছে, আমার উত্তর দ্বারা প্রমাণিত । আমি এমনকি বলব এটি কীভাবে এটি ইনভেন্টরি স্তরে সেট করা যায় সে প্রশ্নের প্রশ্নের উত্তর নয় ।
gertvdijk

@gertvdijk আমি ২০১৪ সালে এর জবাব দিয়েছি Ans এখন আর তাই না?
রিকো

68

হ্যাঁ, আপনি এটি তালিকা / হোস্ট স্তরে সেট করতে পারেন

ইতিমধ্যে গৃহীত উত্তর সহ, আমি মনে করি এটি কীভাবে অনুসন্ধানের স্তরে এটি পরিচালনা করতে হবে সেই প্রশ্নের উত্তম উত্তর। আমি এটির জন্য প্রয়োজনীয় হোস্টগুলিতে এই নিরাপত্তাহীন সেটিংটি বিচ্ছিন্ন করে এটিকে আরও সুরক্ষিত মনে করি (যেমন টেস্ট সিস্টেম, স্থানীয় উন্নয়ন মেশিন)।

আপনি ইনভেন্টরি স্তরে যা করতে পারেন তা হ'ল অ্যাড

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

অথবা

ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

আপনার হোস্ট সংজ্ঞাতে ( উত্তরযোগ্য আচরণের তালিকা পরামিতি দেখুন )।

আপনি যদি sshসংযোগের ধরণটি ব্যবহার করেন , তবে paramikoবা অন্য কোনও কিছু ব্যবহার না করে) এটি কাজ করবে।

উদাহরণস্বরূপ, একটি ভ্যাগ্র্যান্ট হোস্ট সংজ্ঞা দেখতে দেখতে…

vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_common_args='-o StrictHostKeyChecking=no'

অথবা

vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

আনসিবল চালানো তখন কোনও পরিবেশের পরিবর্তনশীল পরিবর্তন না করে সফল হবে।

$ ansible vagrant -i <path/to/hosts/file> -m ping
vagrant | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

আপনি যদি কোনও গ্রুপের হোস্টের জন্য এটি করতে চান তবে একটি বিদ্যমান গোষ্ঠীর জন্য এটির জন্য পরিপূরক গোষ্ঠী ভেরি করার পরামর্শ এখানে রইল:

[mytestsystems]
test[01:99].example.tld

[insecuressh:children]
mytestsystems

[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'

4
এটি একটি আরও ভাল উত্তর।
marcv81

এই পরামর্শটি আমার পক্ষে কাজ করেছিল এবং আমি সম্মত হই যে এটি সুরক্ষা উদ্বেগের কারণে একটি প্রকল্প স্তরে (বৈশ্বিক স্তরের পরিবর্তে) সেট করা উচিত agree
অ্যান্ড্রুডকাটো

1
আমি ansible_ssh_common_args: '-o StrictHostKeyChecking=no'group_vars ফাইল yML ফাইল অন্তর্ভুক্ত।
ছ।

4

আমি ব্যবহার করতে পারি না:

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

ইনভেন্টরি ফাইল। উত্তরদাতাকে আমার ক্ষেত্রে এই বিকল্পটি বিবেচনা করা হয় না বলে মনে হয় (উবুন্টু 14.04-তে পাইপ থেকে উত্তর 2.0.0.0)

আমি ব্যবহার করার সিদ্ধান্ত নিয়েছে:

server ansible_host=192.168.1.1 ansible_ssh_common_args= '-o UserKnownHostsFile=/dev/null'

এটা আমাকে সাহায্য করেছে।

এছাড়াও আপনি প্রতিটি হোস্টের পরিবর্তে গ্রুপে এই পরিবর্তনশীল সেট করতে পারেন:

[servers_group:vars]
ansible_ssh_common_args='-o UserKnownHostsFile=/dev/null'

UserKnownHostsFile/ GlobalKnownHostsFileঅপশনটি সেট করা /dev/nullসত্যই কার্যকর হয়। এটি আশ্চর্যজনক যে সেটিংস আপনার StrictHostKeyCheckingপক্ষে কাজ করে না। সম্ভবত আপনার এসএসএইচ কনফিগারেশনের কিছু বিকল্প কারণ।
জার্মটভিডিজক

+1 এর জন্য -o UserKnownHostsFile=/dev/null। এটি ছাড়াও কেবল আমার জন্য কাজ করা হয়নি, অবস্থান এবং অবস্থানের নির্বিশেষে আমি ansible_ssh_common_args অন্যান্য উত্তরে বর্ণিত।
কুহন

0

কোন /etc/ansible/ansible.cfgঅবস্থাতেই লাইন:

host_key_check = False

এবং /etc/ansible/hostsuncomment এ লাইন

client_ansible ansible_ssh_host=10.1.1.1 ansible_ssh_user=root ansible_ssh_pass=12345678

এখানেই শেষ


0

উত্তরীয় অ্যাডহক কমান্ড ব্যবহার করার সময় উত্তরীয় কনফিগারেশনে নিম্নলিখিতগুলি যুক্ত করা কাজ করেছিল:

[ssh_connection]
# ssh arguments to use
ssh_args = -o StrictHostKeyChecking=no

উত্তরীয় সংস্করণ

ansible 2.1.6.0
config file = /etc/ansible/ansible.cfg

0

আপনি এই কনফিগারেশনগুলি /etc/ansible/ansible.cfgবা হয় ~/.ansible.cfgবা ansible.cfg(আপনার বর্তমান ডিরেক্টরিতে) ফাইলটিতে সেট করেছেন

[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

উবুন্টু ২০.০৪-তে উত্তরযোগ্য ২.৯.। দিয়ে পরীক্ষা করা হয়েছে

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