天天看点

使用Packer制作vagrant box

vagrant(https://www.vagrantup.com/)是实现团队一致开发环境的利器,消耗的资源很小(比单独跑一个虚拟机要小一点),可以快速打包,分发。

很多人喜欢下载网上提供的一些box文件来用,但是出于洁癖和自定义,我喜欢自己做box。有很多方式可以制作box,推荐使用Packer。

以下以制作一个centos7的box为例:

  1. 安装VirtualBox,如果你喜欢vmware也是可以的,不过要收费哦。
  2. 下载packer(https://www.packer.io),解压到你指定的文件夹。不用安装的,直接用命令运行就可以了。
  3. 下载ISO文件,国内到163(http://mirrors.163.com/)下载就好,建议下载CentOS-7-x86_64-Minimal-1503-01.iso ,这是很小的包,centos做服务器系统用最小的安装包就好,没有必要安装一堆无用的东西,例如Firefox等。
  4. packer文件夹建一个ISO文件夹,把下载的ISO文件放到里面。
  5. 编辑配置文件,有一个很好的配置资源可以使用,https://github.com/boxcutter/centos.git,clone下来,然后自定义centos71.json:

    找到这一段:

    “vboxmanage”: [

    [

    “modifyvm”,

    “{{.Name}}”,

    “–memory”,

    “2048” // 内存大小,默认是512,太小了,建议1024-2048

    ],

    [

    “modifyvm”,

    “{{.Name}}”,

    “–cpus”,

    “2” //配置允许使用的CPU核数

    ]

    ]

    配置ISO参数:

    “iso_checksum”: “7c1e34e95c991175290d704dbdcc6531774cbecb”,

    “iso_name”: “CentOS-7-x86_64-Minimal-1503-01.iso”,

    “iso_path”: “iso”

    • iso_checksum可以在163里面的sha1sum.txt 找到
  6. 配置好之后执行 packer build **/centos71.json,packer会完成整个打包过程,并且在box文件夹生成centos71-nocm-0.1.0.box
  7. 测试box文件,

    vagrant add boxName boxPath

    vagrant init boxName

    vagrant up

    一切顺利的话,vagrant box就搞好了,但是Minimal版本的centos需要配置不少东西,但是对一个linux老手而言,这些就是家常便饭了。

继续阅读