如何利用hashicorp封隔器把dbcolinux导出为虚拟机和码头工人格式

  介绍

本篇内容介绍了”如何利用hashicorp封隔器把dbcolinux导出为虚拟机和码头工人格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1,封隔器文件,其它准备工作

由于换了osx加parallelsdesk,我们需要改变一下基本的封隔器文件,以下只提到加的部分,文章1、2中有的部分会省略:

建筑商中是这样:

“type":,“parallels-iso"
  “guest_os_type":,“linux"
  “hard_drive_interface":,“ide"
  ......
  “parallels_tools_flavor":,“lin"
  ......
  “boot_wait":,“4 s"
  “shutdown_command":“sudo  poweroff"
  ......
  “prlctl": [[“set",,“{{. name}},,,“——startup-view",,“window"]],
  
  “boot_command":
  (
  ......
  “tce-load  -iw  parted.tcz< return>“
  “tce-load  -iw  grub2.tcz< return>“
  “tce-load  -iw 还多-工具- 4. x.tcz“
  ......
  
  整合了这里为compiletc, base-dev包含linux 头
  “echo  & # 39; setup  gcccore 包裹……& # 39;& lt; return>“
  “tce-load  -iw  compiletc.tcz< return>“
  
  “echo  & # 39; setup  gccextra 包裹……& # 39;& lt; return>“
  “tce-load  -iw  perl5.tcz< return>“
  “tce-load  -iw  ncurses.tcz< return>“
  “tce-load  -iw  ncurses-dev.tcz< return>“
  ......
  )

可见,为了调试,1、2步方便持续集成,我们还把整个gcc放进了bootcommand,还整合进了一些必要库和工具。

再准备文件,与封隔器文件同层的src文件夹中,分成别人了/基地和/中,这样的文件夹安排,基地对应phase1,是原来的编译工具链,64内核所用的源码文件夹+。x tinycorelinux中的src回购/busybox-1.19.0patched.tar.gz busybox-1.19.0-config,而其他人对应phase2所要用到的源码包。有autoscan-devices.copenssl-1.0.1.tar.gz, openssh - 5.8 p1.tar.xz, sudo-1.7.2p6.tar.gz, libzip-0.10.tar.xz, make-3.81.tar.gz,等。

所以,“供应者”部分会是这样:

 {“type":“shell",“pause_before":“1 s",“execute_command":,“echo  & # 39; & # 39;, |, sudo  -S  sh  -c  & # 39; {{, .Vars }}, {{, .Path }} & # 39;“,“inline": [“cp  -R /tmp/tce  ~/癩},
  {“type":,“shell",“pause_before":“1 s",“execute_command":,“echo  & # 39; & # 39;, |, sudo  -S  sh  -c  & # 39; {{, .Vars }}, {{, .Path }} & # 39;“,“scripts":【“。/脚本/1. bootstrap.sh"]},
  
  由于我们稍后的引导中会不再释放microcore.cpio,这个tmp要事先生成。
  ......
  “sudo  sh  -c  & # 39; mkdir /mnt/hda1/tmp/& # 39;“,
  “sudo  sh  -c  & # 39; chown  tc: staff /mnt/hda1/tmp/& # 39;“
  ......
  {“type":,“file",“source":,“src/base",“destination":,“/mnt/hda1/tmp"},
  
  {“type":,“shell",
  “pause_before":“1 s"
  “execute_command":“echo  & # 39; & # 39;, |, sudo  -S  sh  -c  & # 39; {{, .Vars }}, {{, .Path }} & # 39;“,
  “scripts":
  (
  “,/脚本/2.1.build64toolchainandkernel.sh"
  “。/脚本/2.2.build3264rootfsbase.sh"
  ]
  }

可见原来的2、3整合了成2了,这里的script3是要新加的,为了方便调试,在封隔器的输出窗口中简便查看起见,包括上面的封隔器尽量将简单的树形xml写在行内,接下来的脚本中,我们也作了一些小的改变和与原来文章中的不同调整:

我们把重要的注释换成了回声“ing…”,脚本中,解压文件的都不加冗长,涉及到编译工具链,内核的地方,都。/configure CC=" gcc - w”,且以上统一都在/dev/null,还有,工具链单独一个文件夹,与基础rootfs所需的/lib/lib64分开,我们还将切换本地gcc/刚建的十字架gcc的方法不再使用出口CROSS_COMPILE,而直接用文件名。

调试语句上,发现前面文章写的,一句letitdebug的无义语句,放在位置放在脚本尾或强行断点处并不能让错误问断下来,重启会产生断点让后面的语句无法运行,但也会丢失当前环境,封隔器调试还是最可用的,除了它每执行一步都问一句有点烦之外,封隔器不支持-debug-on-error。

这些大部分都需要在脚本层更改,我们一件一件来:

2,引导脚本的变动

因为我们要形成纯净的/系统,所以去掉了/下的系统(以下注释掉了部分),整个引导会是这样:

如何利用hashicorp封隔器把dbcolinux导出为虚拟机和码头工人格式