1
1

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 5 years have passed since last update.

NetBoxの簡易導入(VirtualBox+vagrant+docker)

Posted at

背景

前回の記事にて、VirtualBox+Vagrantを用いた(単純な)サーバの自動構築が出来た。
ただ、vagrantfileには必要最低限の情報のみ記載していたので、今後、他の検証で使えるようにするためにも、もう少し実用的な内容にする必要がある。

別ツールで触ってみたいものがあったため、その環境をvagrantを使いつつ構築してみようと思う。

NetBox(別ツールとは?)

NetBoxとは、IPアドレス管理(IPAM)及び、データセンターインフラストラクチャ管理(DCIM)を行うことが出来るOSSのツールである。
詳しくは下記の通り。
https://github.com/netbox-community/netbox

IPアドレスや、データセンタのラックや搭載機器等の物理周りをドキュメントで管理するのは限界があるので、こういったツールがあると便利だなと思い、実際に触ってみたく今回構築をしてみる。

参考サイト

今回、下記サイトを参考に構築を行った。
正直、vagrantで無理にやらなくても、下記サイト(項番1)を見てもらえれば簡単にnetboxのおためしは可能です。(NetBoxのDockerイメージがあるので尚更簡単に導入できます。)

  1. "Netbox を dockerで動かす - CentOS7"(Qiita)
  2. Github:netbox-docker

今回の範囲

(NetBoxのdockerイメージを使うので、出来物を利用する形ですが)vagrantfileに設定を記載して、「vagrant up」と打てばNetBoxの環境が構築できるところまでが範囲となります。
※NetBoxの説明は本記事ではしないです。

環境

  • windows 10
  • VirtualBox 6.0.20
  • Vagrant 2.2.7
  • docker
  • docker-compose 1.23.1
  • netbox

VagrantでのVM+Docker+NetBox導入

導入手順

前回の記事の通り、作成済みのVagrant用のフォルダにて、仮想マシン用にフォルダを作成して、そのフォルダにて下記コマンドを実行する。

コマンドプロンプト
> vagrant init

実行後、コマンドを実行したフォルダにvagrantfileが作成されるため、下記内容に上書きする。

vagrantfile
Vagrant.configure("2") do |config|
  # ローカルのvagrant box登録イメージから"centos7.4"の名前を探し、有ればそれを利用
  # 無ければ、"vagrantcloud.com"からダウンロードしてvagrant boxに登録後、そのイメージファイルを利用
  config.vm.box = "centos7.4"
  config.vm.box_url = "https://vagrantcloud.com/centos/boxes/7/versions/1803.01/providers/virtualbox.box"

  # ネットワークIF(192.168.9.10)をVMに設定
  config.vm.network "private_network", ip: "192.168.9.10"

  # VMの設定
  config.vm.provider "virtualbox" do |vb|
    # VMのGUI有無(false:無し)
    vb.gui = false
    # VirtualBoxのVM名
    vb.name = "centos74:netbox"
    # VMのスペック(メモリ:1GB CPU:1コア)
    vb.memory = "1024"
    vb.cpus = 1
  end

  # VM構築後のOS上で下記コマンドを実行(初回実行時のみ)
  # 内容は参考サイトを参照ください。
  # 簡単に記載すると、
  #  docker、docker-compose関連のインストール
  #  netbox-dockerイメージの取得とビルド、一部設定変更
  config.vm.provision "shell", inline: <<-SHELL
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install -y docker-ce
    systemctl start docker
    docker run hello-world
    sudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    yum install -y git
    git clone https://github.com/netbox-community/netbox-docker.git
    cd /home/vagrant/netbox-docker
    /usr/local/bin/docker-compose build
    sed -i -e 's/8080/80:8080/g' ./docker-compose.yml
  SHELL

  # VM構築後&VM起動時にOS上で下記コマンドを実行
  config.vm.provision "shell", run: "always", inline: <<-SHELL
    systemctl start docker
    cd /home/vagrant/netbox-docker
    /usr/local/bin/docker-compose up -d
  SHELL
end

保存したら、下記コマンドを実行して、NetBoxが上がるのを待つ。(ちょっと時間がかかります)

コマンドプロンプト
> vagrant up

実施手順としては以上です。

vagrantfileの説明

実行することで、

  • centos7.4のboxイメージをvagrantに登録(事前の登録不要、登録済みでも可、再利用可能)
  • virtualbox上に"centos74:netbox"の名前でVM作成
  • スペック:CentOS7.4 メモリ=1GB、CPU=1コア
  • IPアドレス:192.168.9.10
  • VM上には、dokcer + docker-compose + NetBoxが導入

が構築される。

vagrantfileの内容については、上記のコメントを参照して貰えればと思いますが、
ポイントとしては、
仮想VMのOS上でのdokcer + docker-compose + NetBoxが導入箇所となる。

下記の記載箇所に導入に必要なコマンドを記載することで、OS上で
 "root"権限
にてコマンドを実行していくため、参考サイトの手順を記載している。

vargrantfile
  config.vm.provision "shell", inline: <<-SHELL
  end

注意点

provisionに記載のコマンドは、VM構築時(初回のvagrant up実行時)のみ、コマンドを実行するため、例えば、OS停止 ⇒ 起動(vagrant up)を行った場合は、コマンドは実行されない。

今回、OS上にdocker自動起動、netbox-docker自動起動の設定・仕組みを入れていないので、このままだと、再度"vagrant up"にて起動をかけた際には、OSにログインをしてコマンドを打つ必要が出る。
そのため、docker起動、netbox-docker起動のコマンドは、下記の記載箇所に、コマンドを記載している。
「run: "always"」オプションは、「vagrant up」を実行する度に、コマンドを実行するものとなる。

vargrantfile
  config.vm.provision "shell", run: "always", inline: <<-SHELL
  end

NetBoxを触ってみる

NetBoxには"http://(VMのIPアドレス)"でアクセスでき、
 ID:admin PW:admin
でログインが可能です。

終わりに

NetBoxの利用については、機会あれば別記事で。
その前に、今回も踏まえつつ、vagrantfileの設定内容(例えば複数台とか、複数IFとか)を整理するかと思います。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?