スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[入] packer関連ファイル

まだ完全ではないのだが、ファイル構成は以下のようにしたい。

packer_home/make-box.bat
packer_home/packer.json
packer_home/Vagrantfile → あとで生成
packer_home/packer_cache → インストール用isoがダウンロードされておかれる。自動生成されるディレクトリ
packer_home/packer/boxes/cent70vbox64.box → 生成されるボックスファイル
packer_home/packer/builders/ks-cent70vbox64-r2.cfg → キックスタートファイル。一時httpサーバのドキュメントルート
packer_home/packer/provisioners/postscript.sh → インスタンス作成後に実行されるスクリプト
packer_home/output-virtualbox-iso/ → vdiファイルなどが生成される一時ディレクトリ。自動生成・削除されるディレクトリ

個別ファイルの内容は以下。

ただしまだデバッグ中で、前のエントリで書いたjson, kickstart
のほうがとりあえずboxファイル作成できた分だけマシかも。。


■make-box.bat

@rem
@rem make-box.bat
@rem

packer build --only=virtualbox-iso packer.json



■packer.json

{
"builders": [
{
"type": "virtualbox-iso",
"vm_name": "cent70vbox64",
"boot_wait": "10s",
"disk_size": 40960,
"guest_os_type": "RedHat_64",
"iso_checksum": "713ea7847adcdd1700e92429f212721a",
"iso_checksum_type": "md5",
"iso_url": "http://127.0.0.1/os/CentOS_7_x86_64.iso",
"ssh_username": "vagrant",
"ssh_password": "vagrant",
"ssh_port": 22,
"ssh_wait_timeout": "60m",
"shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
"guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso",
"virtualbox_version_file": ".vbox_version",
"vboxmanage": [
[
"modifyvm",
"{{.Name}}",
"--memory",
"2048",
"--cpus",
"2",
"--vram",
"16"
]
],
"http_directory": "./packer/builders/",
"boot_command": [
"<tab> text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks-cent70vbox64-r2.cfg<enter><wait>"
]
}
],
"provisioners": [
{
"type": "shell",
"scripts": [
"S:/prjs/dev/vagrant_work/101_packer1/packer/provisoners/postscript.sh"
],
"override": {
"virtualbox-iso": {
"execute_command": "echo 'vagrant'|sudo -S bash '{{.Path}}'"
}
}
}
],
"post-processors": [
{
"type": "vagrant",
"output": "./packer/boxes/cent70vbox64.box"
}
]
}




■ks-cent70vbox64-r2.cfg

#version=RHEL7
## kickstart file
## ks-cent70vbox64-r2.cfg
## cf: https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html

## System authorization information
auth --enableshadow --passalgo=sha512

## Use CDROM installation media
cdrom

## Use text mode install
text

## OS install or upgrade
install

## System language
lang en_US.UTF-8
#lang ja_JP.UTF-8

## Keyboard layouts
keyboard --vckeymap=jp106 --xlayouts='jp106'

## System timezone
timezone Asia/Tokyo --isUtc

## Run the Setup Agent on first boot
firstboot --enable

## Security
firewall --disabled
selinux --disabled

## Network information
network --bootproto=dhcp --ipv6=auto --activate --onboot=yes --hostname=cent70vbox64.localdomain

## Root password
## --lock : can't login as root user
## --iscrypted : set encrypted password. cf: openssl passwd -1

#rootpw --plaintext vagrant
rootpw --lock --iscrypted $1$KCh.2lkW$8oqzasB4Bzj3K/NyVfmMY/

## configure the X Window System
#xconfig --startxonboot
skipx

## user information
group --name=vagrant
user --groups=vagrant,wheel --name=vagrant --password=vagrant --gecos="vagrant user" --homedir=/home/vagrant --shell=/bin/bash

## Initialize illegal partition table
zerombr

## System bootloader configuration
bootloader --location=mbr --boot-drive=sda

## Partition clearing information
clearpart --all --initlabel --drives=sda

## ignore HDD drives
ignoredisk --only-use=sda

#autopart --type=btrfs
autopart --type=lvm
#autopart --type=plain
#swap --recommended

reboot


%packages
@additional-devel
@backup-client
@base
@compat-libraries
@core
@debugging
@desktop-debugging
@development
@dial-up
@directory-client
@dns-server
@emacs
@file-server
@fonts
@ftp-server
@gnome-apps
@gnome-desktop
@graphics
@guest-desktop-agents
@hardware-monitoring
@identity-management-server
@infiniband
@input-methods
@internet-applications
@internet-browser
@java-platform
@large-systems
@legacy-x
@load-balancer
@mail-server
@mainframe-access
@mariadb
@multimedia
@network-file-system-client
@office-suite
@performance
@perl-runtime
@perl-web
@php
@platform-devel
@postgresql
@print-client
@python-web
@remote-desktop-clients
@ruby-runtime
@smart-card
@technical-writing
@virtualization-client
@virtualization-hypervisor
@virtualization-tools
@web-server
@web-servlet
@x11
%end




■postscript.sh

#!/bin/bash
# postscript.sh

BACKUP_DIR=/root/backup

#mkdir /vagrant
mkdir $BACKUP_DIR

#/sbin/usermod -G wheel vagrant
cp /etc/sudoers $BACKUP_DIR
echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant
cp /etc/sudoers.d/vagrant $BACKUP_DIR

GRUB_FILE=/etc/default/grub
cp $GRUB_FILE $BACKUP_DIR
sed -i -e '/GRUB_CMDLINE_LINUX=/s/"$/ clocksource=tsc console=tty0 console=ttyS0,115200n8"/' -e '/GRUB_CMDLINE_LINUX=/s/rhgb quiet //g' $GRUB_FILE
echo "GRUB_TERMINAL=\"console serial\"" >> $GRUB_FILE
echo "GRUB_SERIAL_COMMAND=\"serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1\" " >> $GRUB_FILE

echo "ttyS1" >> /etc/securetty
grub2-mkconfig -o /boot/grub2/grub.cfg
cp /lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS1.service
ln -s /etc/systemd/system/serial-getty@ttyS1.service /etc/systemd/system/getty.target.wants/

systemctl daemon-reload
systemctl start serial-getty@ttyS1.service
systemctl enable serial-getty@ttyS1.service

exit 0



関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

kr2

Author:kr2
ネコと音楽が好き。
CD紹介、技術ネタ
などの雑記帳。

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
最近の記事
最近のコメント
最近のトラックバック
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。