আমি ভ্যাগ্র্যান্ট মাল্টি-মেশিন সেটআপে কীভাবে এসএসএইচ কীগুলি কনফিগার করব?


11

আমার ভ্যাগ্র্যান্টফাইলে আমার 4 টি ভিএম রয়েছে - 3 টি অ্যাপ্লিকেশন সার্ভার এবং একটি উত্তরীয় নিয়ন্ত্রণ হোস্ট।

আমি উত্তরসূচক নিয়ন্ত্রণ হোস্টের পক্ষ থেকে ম্যানুয়ালি এগুলি সরবরাহ করার কারণে আমি কেবল ভিএমআর তৈরি করতে ব্যবহার করি কারণ আমি এখনও উত্তরীয় স্ক্রিপ্টগুলি তৈরি / সম্পাদনা করছি।

আমি vagrant ssh ansibleএবং vagrant ssh app1/2/3ইত্যাদি করতে পারি তবে আমি যখন ansible-playbook oracle.ymlউত্তরীয় নিয়ন্ত্রণের হোস্ট থেকে করার চেষ্টা করি তখন এসএসএইচ ব্যর্থ হয়

fatal: [192.168.60.10]: UNREACHABLE! => {"changed": false, "msg": "SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue", "unreachable": true}

আমি ব্যবহারকারী ভিজাগর এবং পাসওয়ার্ড ভিজগ্রান্ট ব্যবহার করে উত্তরীয় ভিএম থেকে ওরাকল ভিএম সফলভাবে এসএসএস করতে পারি।

আমার ভ্যাগ্রান্টফাইলের মূল অংশগুলি হ'ল:

config.ssh.insert_key = false

config.vm.define "db" do |db|
    db.vm.box = "boxcutter/ol67"
    db.vm.hostname = "oracle-vm"
    db.vm.network "forwarded_port", guest: 22, host: 2201, id: "ssh", auto_correct: false
    db.vm.network "forwarded_port", guest: 1521, host: 1521
    db.vm.network "private_network", ip: "192.168.60.10"
    db.vm.provider "virtualbox" do |v|
        v.name = "oracle-vm"
        v.linked_clone = true
        v.memory = 2048
        v.cpus = 2
    end
end

#Optional ansible control machine for Windows users
config.vm.define "ansible", autostart: false do |ansible|
    ansible.vm.box = "williamyeh/ansible"
    ansible.vm.hostname = "ansible-vm"
    ansible.vm.network "forwarded_port", guest: 22, host: 2204, id: "ssh", auto_correct: false
    ansible.vm.network "private_network", ip: "192.168.60.50"
    ansible.vm.provider "virtualbox" do |v|
        v.linked_clone = true
    end
    #Mount the project directory on the guest so we can run the playbooks from there
    ansible.vm.synced_folder ".", "/data/ansible", create: true
end

এর পরে পাসওয়ার্ড বা অতিরিক্ত ম্যানুয়াল পদক্ষেপের প্রয়োজন না রেখে উত্তরীয় ভিএমকে অন্যান্য ভিএমের সাথে সংযোগ স্থাপনের অনুমতি দেওয়ার জন্য আমার ভ্যাগ্রান্টফাইলে কী রাখতে হবে vagrant up?

এটি কেবল বিকাশকারী পিসিগুলিতে ব্যক্তিগত নেটওয়ার্কে বিকাশের পরীক্ষার জন্য তাই সুরক্ষাটি আসলেই কোনও সমস্যা নয় এবং বাস্তবায়ন এবং ব্যবহারকারীর সহজ ব্যবহারের অভিজ্ঞতাটি সহজ করতে দ্বিতীয় স্থানে আসে।



আমি বেশ স্পষ্ট করে বলেছি যে আমি ভিএমএসের মধ্যে এসএসএস করতে পারি এটি জবাবদিহি করতে পারে না কারণ এর জন্য কীগুলি সেট আপ করা দরকার। তিনি ssh করতে পারবেন না। প্রশ্নগুলি পরিষ্কারভাবে আলাদা।
অপ্টিসাইক্লিক

@ জামেসশেওয়ে: আমি মনে করি না যে এই প্রশ্নের কোনও উত্তর এর সাথে প্রাসঙ্গিক। প্রদত্ত উত্তরটি অতিথিদের কাছে হোস্টের যোগাযোগগুলিকে বোঝায়; অতিথির মধ্যে প্রয়োজনীয় উত্তরটি প্রয়োগ করা দরকার।
টোরেনওয়্যার নেটওয়ার্ক

উত্তর:


8

কোনও সাধারণ পদ্ধতি নেই এবং এটি কীভাবে boxcutter/ol67প্যাক করা হয়েছিল তার উপর নির্ভর করে ।

  1. সবচেয়ে সহজ পদ্ধতিটি উত্তর তালিকাভুক্ত ফাইলটিতে পাসওয়ার্ডটি সংজ্ঞায়িত করা হবে:

    [oracle-vm:vars]
    ansible_ssh_user=vagrant
    ansible_ssh_pass=vagrant
  2. দ্বিতীয় পদ্ধতিটি হ'ল oracle-vmমেশিনে কনফিগার করা নিরাপত্তাহীন প্রাইভেট কীটি রেখে এবং ansibleভিএম- তে ব্যক্তিগত কী ইনজেকশন করা হবে :

    config.vm.provision "shell" do |s|
      ssh_insecure_key = File.readlines("#{Dir.home}/.vagrant.d/insecure_private_key").first.strip
      s.inline = <<-SHELL
        echo #{ssh_insecure_key} >> /home/vagrant/.ssh/id_rsa
        chown vagrant /home/vagrant/.ssh/id_rsa
        chmod 400 /home/vagrant/.ssh/id_rsa
      SHELL
    end
  3. হোস্ট মেশিনে আগেই কী জুড়িটি তৈরি করুন, উত্তরযোগ্য ভিএম-তে প্রাইভেট কী, ওরাকলের পাবলিক কী ইনজেক্ট করুন authorized_keys

  4. উত্তরীয় ভিএম-তে কী জুড়িটি তৈরি করুন, শেল প্রভিশনার ব্যবহার করে ওরাকল ভিএম-এ সর্বজনীন কীটি অনুলিপি করুন এবং vagrantপাসওয়ার্ড হিসাবে ইনজেক্ট করুন ssh-copy-id

এবং তালিকা এখানেই শেষ হয় না, এটি প্রয়োজনীয় সুরক্ষার উপর নির্ভর করে।


8

টেকরফের তৃতীয় পরামর্শের ভিত্তিতে আমি নিম্নলিখিতটি করেছি:

  • vagrant up ansible
  • ssh-keygen(কোনও পাসওয়ার্ড কেবল চাপা নেই Enter)
  • অনুলিপি করা হয়েছে .ssh/id_rsaএবং .ssh/id_rsa.pubপ্রকল্প ডিরেক্টরিতে
  • vagrant destroy ansible
  • সমস্ত হোস্টে Vagrantfileঅনুলিপি করতে পরিবর্তনid_rsa
  • পরিবর্তিত Vagrantfileকপি করতে id_rsa.pubবা authorized_keysসব হোস্টে
  • হোস্ট চেকিং নিষ্ক্রিয় করতে ভ্যাগ্রান্টফাইলে পরিবর্তন করা হয়েছে

ভ্যাগ্রান্টফিল স্নিপেট:

 config.vm.provision "file", source: "id_rsa", destination: "/home/vagrant/.ssh/id_rsa"
 public_key = File.read("id_rsa.pub")
 config.vm.provision :shell, :inline =>"
     echo 'Copying ansible-vm public SSH Keys to the VM'
     mkdir -p /home/vagrant/.ssh
     chmod 700 /home/vagrant/.ssh
     echo '#{public_key}' >> /home/vagrant/.ssh/authorized_keys
     chmod -R 600 /home/vagrant/.ssh/authorized_keys
     echo 'Host 192.168.*.*' >> /home/vagrant/.ssh/config
     echo 'StrictHostKeyChecking no' >> /home/vagrant/.ssh/config
     echo 'UserKnownHostsFile /dev/null' >> /home/vagrant/.ssh/config
     chmod -R 600 /home/vagrant/.ssh/config
     ", privileged: false

এই সমাধানটি আমার পক্ষে ভাল কাজ করেছে তবে আমাকে 192.168 হোস্ট * পরিবর্তন করতে হয়েছিল। * মাত্র * * নিশ্চিত কেন। ধন্যবাদ!
জাচো 19

0

আপনি যদি তালিকার মধ্যে একটি পূর্বরূপিত ব্লক রাখতে চান তবে আটটি স্পেসে ইন্ডেন্ট করুন:

  1. পাবলিক / প্রাইভেট কী তৈরি করুন

    cd vagrant-home
    ssh-keygen // just pressed enter
    copy ~/.ssh/id_rsa .
    copy ~/.ssh/id_rsa.pub .
  2. ভ্যাগ্রান্টফাইল সম্পাদনা করুন, ফলো লাইনগুলি যুক্ত করুন:

        public_key = File.read("id_rsa.pub")
        config.vm.provision "shell", inline: <<-SCRIPT
            chmod 600 /home/vagrant/.ssh/is_rsa
            echo 'Copying ansible-vm public SSH Keys to the VM'
            #mkdir -p /home/vagrant/.ssh
            chmod 700 /home/vagrant/.ssh
            echo '#{public_key}' >> /home/vagrant/.ssh/authorized_keys
            chmod -R 600 /home/vagrant/.ssh/authorized_keys
            echo 'Host 192.168.*.*' >> /home/vagrant/.ssh/config
            echo 'StrictHostKeyChecking no' >> /home/vagrant/.ssh/config
            echo 'UserKnownHostsFile /dev/null' >> /home/vagrant/.ssh/config
            chmod -R 600 /home/vagrant/.ssh/config
            SCRIPT
  3.         vagrant up // or vagrant reload --provision

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