3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

開発環境としてAmazonLinux2をVirtualBoxで動かすための備忘録

Posted at

最終的にEC2かどうかは別としてもAWS上で動かすことになるんだから近い環境のAmazon Linuxがローカルで動いてれば安心じゃね?
って思ったので。
image.png

ローカルなのにEC2のロゴが出るの、なかなかの違和感。

Amazon Linux 2のVirtualBoxイメージ

https://cdn.amazonlinux.com/os-images/latest/virtualbox/
最新のVDIを取得。

seed.iso

https://cdn.amazonlinux.com/os-images/latest/
にあるサンプルのseed.isoでもいいけど。

meta-data

local-hostname: amazonlinux.onprem

user-data

#cloud-config
disable_root: false
ssh_pwauth: true
chpasswd:
  expire: false
  list: |
    root:password

1行目はコメントっぽいけど消すと動かなくなるディレクティブのようなもの。
どうせローカル用だし必要ならあとから変えればいいのでrootでログインできるように変更し、rootのパスワードをpasswordに。

seed.isoの作成

genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

VirtualBox

Host-only Networkの作成

  • IPv4 Address:192.168.56.1(お好きなように)
  • IPv4 ネットマスク:255.255.255.0(お好きなように)

VMの新規作成

Virtual machine Name and Operating System

  • 名前:(お好きなように:ただし空白系の文字はNG)
  • Folder:(お好きなように:ただし空白系の文字はNG)
  • タイプ:Linux
  • バージョン:RedHat (64-bit)

Hardware

  • メインメモリー:(お好きなように)
  • Processor:(お好きなように)

Virtual Hard disk

  • Use an Existing Virtual Hard Disk File
    • 指定したVM用ディレクトリにVMの名前と同じディレクトリができているので、AL2のVDIを「コピー」し、それを選択する
    • なぜコピーかというと、設定をミスって最初からやり直したいときにもう一度ダウンロードしなくていいから

VMの設定

ストレージ

  • 光学ドライブに作成したseed.isoをセット

ネットワーク

  • アダプター 1
    • 有効化
    • 割り当て:NAT
  • アダプター 2
    • 有効化
    • 割り当て:ホストオンリーアダプター
    • 名前:作成したアダプターを選択

ここのアダプター 2MACアドレスをしっかりメモしておく。

共有フォルダー

  • フォルダーのパス:(お好きなところを)
  • フォルダー名:(お好きな名前に)
  • 永続化する

フォルダー名って書いてあるけど実際は共有名みたいなもの。

ここまで設定したら一度VMを起動し、VM内で設定をする

キーボードを設定

localectl list-keymaps
localectl set-keymap jp-OADG109A

リモートからもrootで入れるように設定

/etc/ssh/sshd_configを編集

PermitRootLogin yes
PasswordAuthentication yes

ホストオンリーネットワーク側のネットワークカード設定

eth0アダプター 1
eth1アダプター 2
/etc/sysconfig/network-scripts/ifcfg-eth1を作成

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
DEFROUTE=no
BOOTPROTO=static
HWADDR=01:23:45:67:89:ab
NETWORK=192.168.56.0
IPADDR=192.168.56.101
NETMASK=255.255.255.0

ここがちょっと不親切。

HWADDRアダプター 2のMACアドレス
NETWORKHost-only networkで指定したIPアドレス・ネットマスクから算出されるネットワークアドレス
IPADDRはこのVMに割り当てたいIPアドレス(ただしネットワーク帯は意識)
NETMASKHost-only networkで指定したネットマスク(PREFIXでも可)

ゲストOSから見たホストOSのIPがHost-only Networkで指定したIPv4 Addressに、
ホストOSから見たゲストOSのIPがここで設定したIPADDR
なる。

一旦終了

shutdown -h now

VMの設定(2回目)

ストレージ

seed.isoはもう不要なので取り外しする。

その他設定

Guest Additions

VMのウィンドウにあるデバイスGuest Additions CDイメージの挿入...を選択後、

mount /dev/cdrom /mnt/
/mnt/VBoxLinuxAdditions.run
umount /mnt/

これ以降、設定した共有フォルダを以下の書式でマウントできるようになる。
複数ある場合はシェルスクリプト化しておくと楽。
マウント先のディレクトリは先に作っておく必要がある。

mount -t vboxsf フォルダー名 マウント先パス

AWS CLI入れ直し

なんか古いしV1系統なのなぁぜなぁぜ?

yum remove awscli

以降は公式ドキュメントの手順で。

jq

curl -L https://github.com/stedolan/jq/releases/latest/download/jq-linux64 -o /usr/local/bin/jq
chmod +x /usr/local/bin/jq

yq

curl -L https://github.com/mikefarah/yq/releases/latest/download/yq_linux_386 -o /usr/local/bin/yq
chmod +x /usr/local/bin/yq

git

必要なパッケージをインストール

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker autoconf gcc

ここの上の方にあるThe latest version is x.xx.x.辺りからwgetしてmake configureして./configureしてmake allしてmake install

**env

pyenvとかrbenvとかgoenvとか。
どのユーザでも使えるように/usr/local以下にインストールし、設定する。

例としてpyenvだけ。

git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
cat << EOF > /etc/profile.d/pyenv.sh
export PYENV_ROOT="/usr/local/pyenv"
export PATH="\${PYENV_ROOT}/bin:\${PATH}"
eval "\$(pyenv init -)"
EOF
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?