2
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?

Netbox と Ansible と Gitlabでネットワーク機器のコンフィグ取得(その1:インストール)

Last updated at Posted at 2025-03-02

Netboxで機器を管理して、その情報をつかって自動でコンフィグ保存を定期的に実行する環境を作ったメモ

今回は、Netbox と Ansible と Gitlabのインストールまで記載してます

動作イメージ

各ソフトウェアと全体的な動作のは以下のイメージで、Netboxでネットワーク機器を管理して、GitLabからAnsibleをつかってコンフィグ取得して最終的にGitLab内にコンフィグ保存させようとしました
image.png

今回の確認環境

Ubuntu 24.04.1 LTS で構築しました
(ネットワークシュミレータ上に作りました)

以下のようにサーバ以外にコンフィグ取得対象のネットワーク機器として vJunosEvolved と VyOS をつなげてます
image.png

Ubuntuのサーバは以下を参考にしてください、今回はUbuntu 24.04.1のISOファイルをダウンロードを事前にしてサーバ構築を行いました

GitLab のインストール

以下の内容を参考にさせていただき実施

設定内容だけ抜粋します
今回はポート番号9000でWeb GUIにアクセスできるように設定しています。

apt-get update

apt install -y curl openssh-server ca-certificates tzdata perl

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash

EXTERNAL_URL="http://localhost:9000" apt-get install gitlab-ce

gitlab-ctl reconfigure

これでインストールは終了になります。初期パスワードは以下のファイルで確認できます

more /etc/gitlab/initial_root_password

ブラウザからhttp://<サーバーのIP>:9000へアクセスすると、ログイン画面が表示されるので、ユーザ名:root、パスワードは上記で確認した初期パスワードからログインできます。

GitLab Runnerのインストール

GitLab で CI/CDパイプラインを実行するためにGitLab Runnerのインストールします。
今回はこの機能をつかってGitLab上でAnsibleのPlaybookを実行させます。

以下の内容を参考にさせていただきインストール実施

設定内容だけ抜粋

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | bash

apt-get update

apt-get install gitlab-runner

Netbox のインストール

通常のインストールだと、Netbox以外にPostgreSQL・Redis・nginxなどもインストールが必要で手間のため、今回はDockerを利用しました

Dockerをインストール

以下の内容を参考にさせていただき実施

設定内容だけ抜粋

# Add Docker's official GPG key:
apt-get update

apt-get install ca-certificates curl

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

NetBox の Docker イメージをインストール

以下の内容を参考にさせていただき実施

まずは以下を実施

git clone -b release https://github.com/netbox-community/netbox-docker.git

cd netbox-docker

以下の内容で起動するようにdocker-compose.override.ymlを作成する

  • 今回はポート番号8000でWeb GUIにアクセスできるように設定しています
  • サーバ再起動時に自動で起動するようにする
docker-compose.override.yml
services:
  netbox:
    ports:
      - "8000:8080"
    restart: always
  netbox-worker:
    restart: always
  netbox-housekeeping:
    restart: always
  postgres:
    restart: always
  redis:
    restart: always
  redis-cache:
    restart: always

Docker Compose でDocker イメージをインストールと合わせてバックグラウンドで起動します

docker compose up -d

次にNetbox用のユーザ作成します
今回は仮でユーザ名とパスワードともにnetboxにしてます

docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
設定時の画面
# docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
🧬 loaded config '/etc/netbox/config/configuration.py'
🧬 loaded config '/etc/netbox/config/extra.py'
🧬 loaded config '/etc/netbox/config/logging.py'
🧬 loaded config '/etc/netbox/config/plugins.py'
Username: netbox
Email address:
Password:netbox
Password (again):netbox
This password is too short. It must contain at least 12 characters.
Password must have at least one numeral.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
#

ブラウザからhttp://<サーバーのIP>:8000へアクセスすると、ログイン画面が表示されるので、ユーザ名/パスワードnetboxでログインできます。

Ansible のインストール

pipを使ってインストールします

apt-get install pip

pip install ansible --break-system-packages

SSH用にparamikoansible-pylibsshをインストールしておきます

pip install paramiko --break-system-packages
pip install ansible-pylibssh --break-system-packages

次回

ここまででインストール終了です
次回は、Netbox・Ansible・GitLabの設定書きます

2
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
2
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?