分布式爬虫系列教程之开发环境篇

本文详述了使用VirtualBox和Vagrant搭建Docker-Swarm分布式爬虫开发环境的过程,包括软件安装、镜像配置及虚拟机网络设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:Docker-Swarm 分布式爬虫部署-开发环境篇。

软件安装

  • VirtualBox虚拟机下载地址:https://www.virtualbox.org/wiki/Downloads

  • Vagrant下载地址:https://www.vagrantup.com/downloads.html

  • 图形界面操作步骤可参考:http://drupalchina.cn/book/export/html/6389

  • 官方box镜像地址:https://app.vagrantup.com/boxes/search?order=desc&page=1&sort=downloads

640?wx_fmt=png


手动下载Box并添加

  • 为什么要手动下载,因为在线添加网络太慢,不开心

  • 这里提供一个centos7的镜像百度网盘分享,分享码:2p17

  • 下图为本地Box添加演示

    添加box指令:vagrant box add [自定义名称] [box镜像路径]
    查看box指令: vagrant box list
    删除box指令: vagrant box remove [自定义名称]
    删除虚拟机指令: vagrant destory [虚拟机名称]
    关闭虚拟器指令: vagrant halt [虚拟机名称]
    重启虚拟器指令: vagrant reload [虚拟机名称]
    	
    vagrant box add [自定义名称] [box镜像路径]	
    vagrant box list	
    vagrant box remove [自定义名称]	
    vagrant destory [虚拟机名称]	
    vagrant halt [虚拟机名称]	
    vagrant reload [虚拟机名称]

640?wx_fmt=png


初始化配置与Box使用

  • 修改虚拟机镜像安装地址(因为window上、他默认放在C盘,所以给它搬个家,选择安装到自己需要的路径下)

    640?wx_fmt=png

  • vagrant box 添加后如果不进行配置的话,vagrant box 镜像会默认安装到C盘,同理需要搬家

640?wx_fmt=png

  • 使用 vagrant init生成文件名为vagrantfile 的初始化文件

    640?wx_fmt=png
  • Vagrantfile文件常用设置如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.

ENV["LC_ALL"] = "en_US.UTF-8"
#指定vm的语言环境,缺省地,会继承host的locale配置
Vagrant.configure("2") do |config|

  # 定义centos
  config.vm.define :centos do |centos|
    centos.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "centos", "--memory", "4096","--cpus", "2"]
    end
    # 使用的Box名称
    centos.vm.box = "centos"
    # 自定义的名称
    centos.vm.hostname = "centos"
    # 为虚拟机分配内网IP地址。SSH可以直接通过192.168.33.11连接
    centos.vm.network :private_network, ip: "192.168.33.11"
       # 需要共享的目录
    centos.vm.synced_folder  "G:/code", "/workspace"
  end

     # 定义centos
  config.vm.define :centos do |centos|
    centos.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "centos", "--memory", "4096","--cpus", "2"]
    end
    # 使用的Box名称
    centos.vm.box = "centos"
    # 自定义的名称
    centos.vm.hostname = "centos"
    # 为虚拟机分配内网IP地址。SSH可以直接通过192.168.33.11连接
    centos.vm.network :private_network, ip: "192.168.33.11"
       # 需要共享的目录
    centos.vm.synced_folder  "G:/code", "/workspace"
  end


end

创建多个开发机用于后期docker 分布式部署爬虫

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.

ENV["LC_ALL"] = "en_US.UTF-8"
#指定vm的语言环境,缺省地,会继承host的locale配置
Vagrant.configure("2") do |config|

  # master
  config.vm.define :master do |master|
    master.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "master", "--memory", "2048","--cpus", "2"]
          v.customize ["modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "serial_console.log")]
    end
    master.vm.box = "centos"
    master.vm.hostname = "centos"
    master.vm.network :private_network, ip: "192.168.33.11"

    master.vm.synced_folder  "G:/code", "/workspace"
  end

  # slave1
  config.vm.define :slave1 do |slave1|
    slave1.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "slave1", "--memory", "2048","--cpus", "2"]
          v.customize ["modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "serial_console.log")]
    end
    slave1.vm.box = "centos"
    slave1.vm.hostname = "slave1"
    slave1.vm.network :private_network, ip: "192.168.33.12"

    slave1.vm.synced_folder  "G:/code", "/workspace"
  end

  # slave2
  config.vm.define :slave2 do |slave2|
    slave2.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "slave2", "--memory", "2048","--cpus", "2"]
          v.customize ["modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "serial_console.log")]
    end
    slave2.vm.box = "centos"
    slave2.vm.hostname = "centos"
    slave2.vm.network :private_network, ip: "192.168.33.13"

    slave2.vm.synced_folder  "G:/code", "/workspace"
  end

end
  • 使用 vagrant up启动 一般在Vagrantfile 文件同级生成.vagrant的配置文件夹(如果是首次启动通常比较慢,会生成虚拟机镜像,镜像位置以我们上一步配置的路径地址为准)

  • 修改配置文件需要重启。指令:vagrant reload。启动成功后可通过快捷指令连接:vagrant reload

  • 注:如果在重启或者启动过程中提示尝试登录失败一般为公钥秘钥对应不上。可通过类似这样的ssh vagrant@192.168.33.11ssh命令直接登录使用密码登录即可。所有账号默认密码均为:vagrant

  • 生成后的效果图如下:

640?wx_fmt=png


640?wx_fmt=png


前面导入的基础镜像centos 是原始镜像,后期可以基于原始镜像自己进行配置,装好各种开发环境候后打包,然后就可以带着打包好的box 镜像,无论换了多少家公司,一次搞定,当然,如果是团队的话,可以公用一个box 镜像,绝对一模一样的环境

为什么要用vagrant,因为它是跨平台的。

下篇文章会介绍vagrant打包, vagrant配合pycharm 一起使用以及docker-swarm 分布式部署,第一次写文章,大佬们请轻喷哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值