EC2上にOSSのERPツールであるOdooを構築してみた
こんにちは、ゲームソリューション部のsoraです。
今回は、EC2上にOSSのERPツールであるOdooを構築してみたことについて書いていきます。
はじめに
Odooとは、販売管理や在庫管理、人事管理などの情報を一元管理するためのオープンソースのERP(Enterprise Resource Planning)ソフトです。
今回はこのOdooをEC2上に構築してログインするところまでを実施していきます。
Odooの使い方の話はしません。
また、AMIはUbuntuを使用します。
Odooのインストール
基本的には以下の手順を参考に進めていきます。
手順通りに進めていて、設定ファイルをどこに配置するかなどが困った部分の記載であったり、日本語でのコマンド実行のコメントも以下に記載します。sudo apt update
# python3とpip3のインストール
sudo apt install python3-pip -y
# その他Odoo実行時に必要なパッケージのインストール
sudo apt install -y build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
# Linuxシステムへのodooユーザの追加
sudo adduser odoo_user
# ⇒パスワード以外は任意のため空白でも良い
# PostgreSQLリポジトリをパッケージ管理システムに追加
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
# PostgreSQLのリポジトリのGPGキーを取得して追加
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
# PostgreSQLのインストール
sudo apt install postgresql postgresql-contrib -y
# Postgreの起動・自動起動設定
sudo systemctl start postgresql && sudo systemctl enable postgresql
# LinuxシステムのPostgreSQLの初期パスワードの設定
sudo passwd postgres
# PostgreSQLユーザへの切り替え
su - postgres
# PostgreSQLにodooユーザの作成
createuser odoo_user
# PostgreSQLシェル起動
psql
# odooユーザにデータベースを作成する権限を付与
ALTER USER odoo_user WITH CREATEDB;
# シェルから抜ける
\q
# PostgreSQLユーザから抜ける
exit
# wkhtmltopdfのダウンロード・インストール
# ⇒ウェブページをPDF形式に変換するツール
# Odooにてドキュメント生成するために使用
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb
# ディレクトリの作成、ディレクトリとその中のすべてのファイルやフォルダの所有者とグループを「odoo_user」に変更
sudo mkdir -p /opt/odoo/odoo
sudo chown -R odoo_user /opt/odoo
sudo chgrp -R odoo_user /opt/odoo
# odooユーザへの切り替え
sudo su - odoo_user
# Odooリポジトリの取得 /opt/odoo/odoo配下に作成
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo/odoo
# Odoo用のPython仮想環境の作成
cd /opt/odoo
python3 -m venv odoo-venv
# 仮想環境への移動
source odoo-venv/bin/activate
# 仮想環境でのライブラリのインストール
pip3 install wheel
pip3 install -r odoo/requirements.txt
# 仮想環境から抜ける
deactivate
# ディレクトリの作成
mkdir /opt/odoo/odoo-custom-addons
# odooユーザから抜ける
exit
# 設定ファイルの作成1
sudo nano /etc/odoo.conf
# ここからがファイルの中身
[options]
; This is the password that allows database operations:
admin_passwd = StrongMasterPassword
db_host = False
db_port = False
db_user = odoo_user
db_password = False
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo-custom-addons
# ここまでがファイルの中身
# 設定ファイルの作成2
sudo nano /etc/systemd/system/odoo.service
# ここからがファイルの中身
[Unit]
Description=Odoo17
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo_user
PermissionsStartOnly=true
User=odoo_user
Group=odoo_user
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
# ここまでがファイルの中身
# デーモンのリロード
sudo systemctl daemon-reload
# Odooの起動・自動起動設定・状態の確認
sudo systemctl start odoo
sudo systemctl enable odoo
sudo systemctl status odoo
Odooへの接続
構築ができたのでOdooへ接続します。
http://{Public IP Address}:8069
でアクセスすると以下の画面が表示されます。
Master Passwordには、/etc/odoo.conf
で設定したadmin_password
の値(今回だとStrongMasterPassword
)
Database Nameには、手順内でPostgreSQLに作成したデータベース名
EmailとPasswordは、ここで入力したものがログイン時のユーザとパスワードになります。
データベース作成後に、先ほど入力したユーザとパスワードでログインすると、以下のような画面が表示できました。
最後に
今回は、EC2上にOSSのERPツールであるOdooを構築してみたことを記事にしました。
どなたかの参考になると幸いです。