পিওএইচপিপেট, ভ্যাগ্রান্ট এবং এসএসএইচ - এসএসএইচ সংযোগের সময়সীমা


2

আমি একটি নতুন সেন্টোস 6.5 ভিজাগর বাক্স তৈরি করেছি এবং প্রভিশন দেওয়ার পরে, এসএসএইচ সংযোগের সময় শেষ হয়ে যায়। ভার্চুয়ালবক্সের সাথে আমি ভ্যাগ্রান্ট এসএসএসের পদক্ষেপগুলি ব্যর্থ করেছি তবে আমি ত্রুটি পেয়েছি (নীচে দেখুন)। আমি প্রাথমিকভাবে ভেবেছিলাম এটি আমার / ইত্যাদি / হোস্টগুলির সাথে সমস্যা হতে পারে, তবে কোনও সম্ভাব্য দ্বন্দ্ব মন্তব্য করার পরে আমার এখনও একই সমস্যা রয়েছে; সুতরাং, আমি একটি উবুন্টু 14.04 ভ্যাগ্র্যান্ট বাক্স তৈরি করেছি এবং সেই যন্ত্রটি নির্বিঘ্নে বুট আপ হয়েছে। উভয়ই মেশিনের ভ্যাগ্রান্ট ফাইল / কনফিগারেশন.মিল পিএইচপিপেট.কম ব্যবহার করে নির্মিত হয়েছিল।

হোস্টের বিশদ:

Host OS: Kubuntu 14.04 (3.13.0-29-generic)
Virtualbox: 4.3.12 r93733
Vagrant: 1.6.0
Basebox: puphpet/centos65-x64   (virtualbox, 1.0.1)

জিইউআই সক্ষম করার জন্য সর্বাধিক পুনরায় চেষ্টা করার জন্য এবং উপরের থ্রেডে সর্বোচ্চ পুনরায় চেষ্টা করার জন্য আমার ভ্যাগ্রান্টফাইলে সম্পাদনা করার পরে, আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

SSH:
* The following settings shouldn't exist: max_tries

vm:
* The following settings shouldn't exist: boot_mode

সুতরাং, আমি সেগুলি পরে সরিয়েছি। আমি ভার্চুয়ালবক্সের সাহায্যে মেশিনটি বুট করেছিলাম এবং এটি সহজেই উঠে আসে।

আইপি নির্ধারিত: 192.168.56.101

/ Etc / sysconfig / নেটওয়ার্ক-স্ক্রিপ্ট / ifcfg-eth1 নিম্নলিখিত কনফিগার সেট রয়েছে:

DEVICE="eth1"
BOOTPROTO="none"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLER="yes"
ONBOOT="yes"
TYPE="Ethernet"
#VAGRANT-BEGIN
NM_CONTROLLER=no
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.56.101
NETMASK=255.255.255.0
DEVICE=eth1
PEERDNS=no
#VAGRANT-END

[পাশে] যখন আমি টাইপ করছিলাম (দুর্ভাগ্যক্রমে আমি ভিএম সিএলআই থেকে অনুলিপি / পেস্ট করতে পারিনি), আমি লক্ষ্য করেছি যে এর জন্য দ্বিতীয় ঘোষণা ছিল NM_CONTROLLED, সুতরাং আমি NM_CONTROLLED="yes"এটি পরিষ্কার করার জন্য এখনই মন্তব্য করতে চলেছি । [/ একপাশে]

ডানদিকে চলমান ... আমি হোস্ট থেকে অতিথিকে পিং করতে সক্ষম; এবং, আমি স্ট্যান্ডার্ড উপায় (ssh vagrant@192.168.56.101) ব্যবহার করে ssh করার চেষ্টা করেছি তবে একটি ত্রুটিপূর্ণ বিবরণী পেয়েছি No route to host

$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_seq=1 ttl=64 time=1.94 ms
64 bytes from 192.168.56.101: icmp_seq=2 ttl=64 time=0.430 ms
^C
--- 192.168.56.101 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.430/1.187/1.945/0.758 ms

[03:03 PM]-[josej@josej-desktop]-[~/Projects/CentOS-6.5]
$ ssh vagrant@192.168.56.101
ssh: connect to host 192.168.56.101 port 22: No route to host

স্পষ্টতই, হোস্টের কাছে যাওয়ার জন্য একটি রুট রয়েছে যেহেতু আমি এটি পিং করতে পারি;)। সুতরাং, আমি ভেবেছিলাম যে এসএসডিটি চলছে না তবে আমরা নীচে দেখতে পাচ্ছি, এটি হ'ল:

[vagrant@localhost ~]$ ps aux | grep sshd
root    1321    0.0    0.1    66608    1200 ?        Ss    20:02    0:00 /usr/sbin/sshd

আমি এসএসএইচ কীটিতে পাস না করায় আমি সংযোগটি প্রত্যাখ্যান করার প্রত্যাশা করছিলাম, তবে যেহেতু এটি ঘটেনি এবং এসএসডি চলছে।

সুতরাং, পরবর্তী আমি পরীক্ষা করেছিলাম অতিথি গুগলকে পিং করতে পারে কিনা, যা ব্যর্থ হয়েছিল। সুতরাং, routeআমরা যাচাই করে দেখছি:

[vagrant@localhost ~]$ route
Kernel IP routing table
Destination    Gateway    Genmask         ... Iface
10.0.2.0       *          255.255.255.0   ... eth0
192.168.56.0   *          255.255.255.0   ... eth1

সুতরাং, আমার সেরা অনুমানটি হল কোথাও কোনও নেটওয়ার্কিংয়ের সমস্যা আছে। যেহেতু হোস্ট অতিথিকে পিং করতে পারে এবং অতিথি হোস্টকে পিং করতে পারে ( ping 192.168.56.1কাজ করে), রুট ফাইলটি ভাল ইমো দেখায় এবং নেটওয়ার্কিং কনফিগারেশনটি সঠিক, তবে অতিথি গেটওয়ের বাইরে কোনও গন্তব্যে পৌঁছাতে পারে না ... আমি আছি এই মুহুর্তে বেশ স্ট্যাম্পড।

আমি iptables এর মাধ্যমে ঝুঁকতে যাচ্ছি এবং আপাতত SELinux অক্ষম করব। আশা করি সমস্যাটি দূর করতে সহায়তা করবে। যাইহোক, আমি যে কোনও পরামর্শের জন্য উন্মুক্ত কারণ আমি এই নিয়ে দু'দিন ধরে লড়াই করে যাচ্ছি এবং কেবলমাত্র চেনাশোনাগুলিতেই চলেছি।

এবং, অবশেষে, এখানে ভ্যাগ্রান্টফাইল এবং পিউফেট / কনফিগারেশন রয়েছে:

require 'yaml'

dir = File.dirname(File.expand_path(__FILE__))

configValues = YAML.load_file("#{dir}/puphpet/config.yaml")
data = configValues['vagrantfile-local']

Vagrant.configure("2") do |config|
  config.vm.box = "#{data['vm']['box']}"
  config.vm.box_url = "#{data['vm']['box_url']}"

  if data['vm']['hostname'].to_s.strip.length != 0
    config.vm.hostname = "#{data['vm']['hostname']}"
  end

  if data['vm']['network']['private_network'].to_s != ''
    config.vm.network "private_network", ip: "#{data['vm']['network']['private_network']}"
  end

  data['vm']['network']['forwarded_port'].each do |i, port|
    if port['guest'] != '' && port['host'] != ''
      config.vm.network :forwarded_port, guest: port['guest'].to_i, host: port['host'].to_i
    end
  end

  data['vm']['synced_folder'].each do |i, folder|
    if folder['source'] != '' && folder['target'] != ''
      nfs = (folder['nfs'] == "true") ? "nfs" : nil
      if nfs == "nfs"
        config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs
      else
        config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs,
          group: 'www-data', owner: 'www-data', mount_options: ["dmode=775", "fmode=764"]
      end
    end
  end

  config.vm.usable_port_range = (10200..10500)

  if data['vm']['chosen_provider'].empty? || data['vm']['chosen_provider'] == "virtualbox"
    ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'

    config.vm.provider :virtualbox do |virtualbox|
      data['vm']['provider']['virtualbox']['modifyvm'].each do |key, value|
        if key == "memory"
          next
        end

        if key == "natdnshostresolver1"
          value = value ? "on" : "off"
        end

        virtualbox.customize ["modifyvm", :id, "--#{key}", "#{value}"]
      end

      virtualbox.customize ["modifyvm", :id, "--memory", "#{data['vm']['memory']}"]

      if data['vm']['hostname'].to_s.strip.length != 0
        virtualbox.customize ["modifyvm", :id, "--name", config.vm.hostname]
      end
    end
  end

  if data['vm']['chosen_provider'] == "vmware_fusion" || data['vm']['chosen_provider'] == "vmware_workstation"
    ENV['VAGRANT_DEFAULT_PROVIDER'] = (data['vm']['chosen_provider'] == "vmware_fusion") ? "vmware_fusion" : "vmware_workstation"

    config.vm.provider "vmware_fusion" do |v|
      data['vm']['provider']['vmware'].each do |key, value|
        if key == "memsize"
          next
        end

        v.vmx["#{key}"] = "#{value}"
      end

      v.vmx["memsize"] = "#{data['vm']['memory']}"

      if data['vm']['hostname'].to_s.strip.length != 0
        v.vmx["displayName"] = config.vm.hostname
      end
    end
  end

  if data['vm']['chosen_provider'] == "parallels"
    ENV['VAGRANT_DEFAULT_PROVIDER'] = "parallels"

    config.vm.provider "parallels" do |v|
      data['vm']['provider']['parallels'].each do |key, value|
        if key == "memsize"
          next
        end

        v.customize ["set", :id, "--#{key}", "#{value}"]
      end

      v.memory = "#{data['vm']['memory']}"

      if data['vm']['hostname'].to_s.strip.length != 0
        v.name = config.vm.hostname
      end
    end
  end

  ssh_username = !data['ssh']['username'].nil? ? data['ssh']['username'] : "vagrant"

  config.vm.provision "shell" do |s|
    s.path = "puphpet/shell/initial-setup.sh"
    s.args = "/vagrant/puphpet"
  end
  config.vm.provision "shell" do |kg|
    kg.path = "puphpet/shell/ssh-keygen.sh"
    kg.args = "#{ssh_username}"
  end
  config.vm.provision :shell, :path => "puphpet/shell/update-puppet.sh"

  config.vm.provision :puppet do |puppet|
    puppet.facter = {
      "ssh_username"     => "#{ssh_username}",
      "provisioner_type" => ENV['VAGRANT_DEFAULT_PROVIDER'],
      "vm_target_key"    => 'vagrantfile-local',
    }
    puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
    puppet.manifest_file = "#{data['vm']['provision']['puppet']['manifest_file']}"
    puppet.module_path = "#{data['vm']['provision']['puppet']['module_path']}"

    if !data['vm']['provision']['puppet']['options'].empty?
      puppet.options = data['vm']['provision']['puppet']['options']
    end
  end

  config.vm.provision :shell do |s|
    s.path = "puphpet/shell/execute-files.sh"
    s.args = ["exec-once", "exec-always"]
  end
  config.vm.provision :shell, run: "always" do |s|
    s.path = "puphpet/shell/execute-files.sh"
    s.args = ["startup-once", "startup-always"]
  end
  config.vm.provision :shell, :path => "puphpet/shell/important-notices.sh"

  if File.file?("#{dir}/puphpet/files/dot/ssh/id_rsa")
    config.ssh.private_key_path = [
      "#{dir}/puphpet/files/dot/ssh/id_rsa",
      "#{dir}/puphpet/files/dot/ssh/insecure_private_key"
    ]
  end

  if !data['ssh']['host'].nil?
    config.ssh.host = "#{data['ssh']['host']}"
  end
  if !data['ssh']['port'].nil?
    config.ssh.port = "#{data['ssh']['port']}"
  end
  if !data['ssh']['username'].nil?
    config.ssh.username = "#{data['ssh']['username']}"
  end
  if !data['ssh']['guest_port'].nil?
    config.ssh.guest_port = data['ssh']['guest_port']
  end
  if !data['ssh']['shell'].nil?
    config.ssh.shell = "#{data['ssh']['shell']}"
  end
  if !data['ssh']['keep_alive'].nil?
    config.ssh.keep_alive = data['ssh']['keep_alive']
  end
  if !data['ssh']['forward_agent'].nil?
    config.ssh.forward_agent = data['ssh']['forward_agent']
  end
  if !data['ssh']['forward_x11'].nil?
    config.ssh.forward_x11 = data['ssh']['forward_x11']
  end
  if !data['vagrant']['host'].nil?
    config.vagrant.host = data['vagrant']['host'].gsub(":", "").intern
  end
end

Config.yaml

---
vagrantfile-local:
    vm:
        box: puphpet/centos65-x64
        box_url: puphpet/centos65-x64
        hostname: null
        memory: '1024'
        chosen_provider: virtualbox
        network:
            private_network: 192.168.56.101
            forwarded_port:
                RVPy8vdfEyb4:
                    host: '5329'
                    guest: '22'
        provider:
            virtualbox:
                modifyvm:
                    natdnshostresolver1: on
                setextradata:
                    VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root: 1
            vmware:
                numvcpus: 1
            parallels:
                cpus: 1
        provision:
            puppet:
                manifests_path: puphpet/puppet
                manifest_file: manifest.pp
                module_path: puphpet/puppet/modules
                options:
                    - '--verbose'
                    - '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
                    - '--parser future'
        synced_folder:
            Fmuml1NNvztV:
                source: ./
                target: /var/www
                nfs: 'true'
        usable_port_range: 2200..2250
    ssh:
        host: null
        port: null
        private_key_path: null
        username: vagrant
        guest_port: null
        keep_alive: true
        forward_agent: false
        forward_x11: false
        shell: 'bash -l'
    vagrant:
        host: detect
server:
    packages:
        - vim-common
    dot_files:
        -
            bash_aliases: null
    _prevent_empty: ''
mailcatcher:
    install: '1'
    settings:
        smtp_ip: 0.0.0.0
        smtp_port: 1025
        http_ip: 0.0.0.0
        http_port: '1080'
        mailcatcher_path: /usr/local/bin
        log_path: /var/log/mailcatcher/mailcatcher.log
firewall:
    install: '1'
    rules:
        IzA1MvHnvQ4g:
            port: '10000'
            priority: '100'
            proto: tcp
            action: accept
apache:
    install: '1'
    settings:
        user: www-data
        group: www-data
        default_vhost: true
        manage_user: false
        manage_group: false
        sendfile: 0
    modules:
        - php
        - rewrite
    vhosts:
        jeFgLNotkCuO:
            servername: awesome.dev
            serveraliases:
                - www.awesome.dev
            docroot: /var/www/awesome
            port: '80'
            setenv:
                - 'APP_ENV dev'
            override:
                - All
            options:
                - Indexes
                - FollowSymLinks
                - MultiViews
            custom_fragment: ''
            ssl_cert: ''
            ssl_key: ''
            ssl_chain: ''
            ssl_certs_dir: ''
    mod_pagespeed: 0
    mod_spdy: 0
nginx:
    install: 0
    vhosts:
        ejsUD06Uwceq:
            server_name: awesome.dev
            server_aliases:
                - www.awesome.dev
            www_root: /var/www/awesome.dev
            listen_port: '80'
            index_files:
                - index.html
                - index.htm
                - index.php
            envvars:
                - 'APP_ENV dev'
            ssl_cert: ''
            ssl_key: ''
php:
    install: '1'
    version: '55'
    composer: '1'
    composer_home: ''
    modules:
        php:
            - cli
            - intl
            - mcrypt
        pear: {  }
        pecl:
            - pecl_http
    ini:
        display_errors: On
        error_reporting: '-1'
        session.save_path: /var/lib/php/session
    timezone: America/Chicago
xdebug:
    install: '1'
    settings:
        xdebug.default_enable: '1'
        xdebug.remote_autostart: '0'
        xdebug.remote_connect_back: '1'
        xdebug.remote_enable: '1'
        xdebug.remote_handler: dbgp
        xdebug.remote_port: '9000'
drush:
    install: 0
    settings:
        drush.tag_branch: 6.x
mysql:
    install: '1'
    root_password: '123'
    adminer: 0
    databases:
        JibsW5qqEtvE:
            grant:
                - ALL
            name: REDACTED
            host: localhost
            user: REDACTED
            password: '123'
            sql_file: ''
        TUQ8E8xUDyFi:
            grant:
                - ALL
            name: REDACTED
            host: localhost
            user: REDACTED
            password: '123'
            sql_file: ''
postgresql:
    install: '1'
    settings:
        root_password: '123'
        user_group: postgres
        encoding: UTF8
        version: '9.3'
    databases: {  }
    adminer: 0
mariadb:
    install: 0
    root_password: '123'
    adminer: 0
    databases: {  }
    version: '10.0'
mongodb:
    install: '1'
    settings:
        auth: 1
        port: '27017'
    databases: {  }
redis:
    install: '1'
    settings:
        conf_port: '6379'
beanstalkd:
    install: '1'
    settings:
        listenaddress: 0.0.0.0
        listenport: '13000'
        maxjobsize: '65535'
        maxconnections: '1024'
        binlogdir: /var/lib/beanstalkd/binlog
        binlogfsync: null
        binlogsize: '10485760'
    beanstalk_console: '1'
    binlogdir: /var/lib/beanstalkd/binlog
rabbitmq:
    install: 0
    settings:
        port: '5672'
elastic_search:
    install: '1'
    settings:
        java_install: true
        autoupgrade: true

সেলইনাক্স অক্ষম করা হয়েছে এবং আমি আমার আইপিটিবলগুলিকে 22 ডিসিপিটি করার জন্য টিসিপি গ্রহণ করতে সংশোধন করেছি the সার্ভিসটি পুনরায় চালু করার পরে, আমি এখন ভ্যাংগ্র্যান্ট@192.168.56.101 সেশ করতে সক্ষম হয়েছি তবে ভিজান্ট আপের সময়সীমা এখনও শেষ। আমি এই মুহুর্তে বেশ বিচলিত ...
ড্রোবডি

ভাল, দৌড়ানোর পরে sudo service iptables offআমি এখন গুগল, ইয়াম রেপোস ইত্যাদিতে পৌঁছতে সক্ষম হয়েছি তাই এটি কোনও নেটওয়ার্কিং ইস্যু নয়, আইপটবেবল ইস্যু হতে চলেছে। এখন, মজাদার অংশটি, আমার প্রয়োজনীয় iptables বিধিগুলিতে সমস্ত যোগ করে। আরগ, এটি পিএপএইচপিপেট সরঞ্জামটি ব্যবহার করে নির্মিত ভ্যাব্রেন্ট বাক্সগুলির জন্য প্রাক-কনফিগার করা হত। স্পষ্টতই এটি আর হয় না।
দ্রোবুডি

আহ, আমি আমার প্রিয় সরঞ্জামটি ভুলে গেছি: সিস্টেম-কনফিগার-ফায়ারওয়াল-টুই। কি সময় রক্ষাকারী। এই সমস্যার মুখোমুখি হওয়া অন্য যে কোনও ব্যক্তিকে আমি অত্যন্ত সুপারিশ করছি।
21-28 এ ড্রো

একটি প্রশ্ন এবং এক বা একাধিক উত্তর থাকলে এই সাইটটি সবচেয়ে ভাল কাজ করে। আপনি আপনার নিজের প্রশ্নের উত্তর যুক্ত করতে উত্সাহিত হন।
ব্রায়ান অ্যাডকিনস

ভাল যুক্তি. আমি এটা করবো. ;)
DroBuddy

উত্তর:


4

সমস্যাটি ছিল যে পিউপিএইচপেট.কমের সেন্টোস ভিজাগর বাক্স আর ফায়ারওয়াল নিয়মের একটি ডিফল্ট সেট নিয়ে আসে না। সুতরাং, এটি সমাধান করার জন্য, ভার্চুয়ালবক্স (বা আপনি যে কোনও হাইপারভাইসর ব্যবহার করছেন) ব্যবহার করে ভিএম বুট করুন, তারপরে /etc/sysconfig/ptablesআপনার পছন্দসই পরিষেবাদিগুলির অনুমতি দিতে সংশোধন করুন এবং সংরক্ষণ করুন।

আমার ব্যক্তিগত মতে, সবচেয়ে ভালো উপায় আপনার iptables- র 'নিয়ম সম্পাদনা করার জন্য একটি CLI টুল যা সহজেই yum সহযোগে ইনস্টল করা যাবে ব্যবহার করা: sudo yum install -y system-config-frewall-tui। এই পাঠ্য-ভিত্তিক ব্যবহারকারী ইন্টারফেসটি আপনাকে উইজার্ড ব্যবহার করে স্ট্যান্ডার্ড পরিষেবাদি (httpd, বাঁধাই, পোস্টফিক্স, এনএফএস, ইত্যাদি) সহজেই সক্ষম / নিষ্ক্রিয় করতে দেয়, পাশাপাশি অ-স্ট্যান্ডার্ড পোর্ট / পরিষেবাদির জন্য কাস্টম বিধি তৈরি করতে পারে (যেমন ওয়েবমিনের পোর্ট 10000 )। এই সরঞ্জামটি সত্যিকারের সময় রক্ষাকারী।

এটি যদি আপনার সংযোগের সমস্যাগুলি সমাধান না করে, তবে sudo service iptables offএটি অতিথির উপর ফায়ারওয়াল সম্পর্কিত কিনা এবং তা হোস্টের ( ssh vagrant@my-host-name-or-ip) থেকে এসএসএইচ অ্যাক্সেসের চেষ্টা করার চেষ্টা করুন কিনা তা প্রমাণ করার জন্য ।

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

আছে HTH।

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