FreeBSD下使用qjail部署odoo
近年来 docker 很火热,这种容器技术让代码的部署变得很简单。其实,在 FreeBSD 下,也有一种容器技术比 docker 还要简单,容易使用。
FreeBSD 11中新增加了一个jail管理工具,叫QJAIL。这个工具更加简化了jail的管理。下面就不多说了,直接上代码。
安装 qjail 容器环境
安装 qjail 容器
pkg install qjail
建立新容器
qjail create -4 192.16.1.12 odoo
查看容器列表
qjail list
启动容器
qjail start odoo
进入容器
qjail console odoo
配置网络访问权限
qjail config -k odoo
注意:小k代表启动row_socket,大K代表禁用row_socket,而且要在jail停止的情况下可以配置
安装 Postgresql
安装 Postgresql 服务
pkg install postgresql10-server
准备 odoo 数据目录
mkdir /var/pgsql
mkdir /var/pgsql/data
chown -R postgres /var/pgsql
chmod -R 777 /var/pgsql/data
配置 rc 开机服务
ee /etc/rc.conf
增加
postgresql_enable="YES"
postgresql_data="/var/pgsql/data"
postgresql_class="postgres"
postgresql_initdb_flags="--encoding=UTF8 --locale=en_US.UTF-8"
启动 Postgresql 服务
service postgresql restart
启用 sysvipc_allowed 共享内存
qjail config -y odoo
初始化 postgresql 服务
cd /var/pgsql/data
su postgres
initdb -D /var/pgsql/data
查看版本
postgres --version
mkdir /var/pgsql/log
pg_ctl -D /var/pgsql/data -l /var/pgsql/log/logfile start
登入数据库
su posgres
psql postgres
# 创建数据库
CREATE user odoo WITH PASSWORD '123' CREATEDB;
# 退出数据库
Ctrl+d
安装 Python 语言环境
安装 python36 语言环境
pkg install python36
安装 bash 语言环境
pkg install bash
安装 Odoo 应用环境
进入 Bash 环境
bash
下载 Odoo 代码
cd /applicaion/install
wget https://download.odoocdn.com/12.0/nightly/src/odoo_13.0.latest.tar.gz
tar -zxvf odoo_13.0.latest.tar.gz
安装 Odoo 依赖包
pip-3.6 install -r requirements.txt
备注:有些依赖包安装不上,可以用系统 pkg 安装直接安装编译好的版本。
安装 Odoo 包
python setup.py install
运行 Odoo 应用
# 建立 odoo 用户
adduser --system --group odoo
# 目录设置
chown odoo:odoo /applicaion/odoo/
chmod -R 777 /applicaion/odoo/
# 运行
python3.6 /applicaion/odoo/odoo-bin --db-filter=odoo
supervisor 服务管理
安装 supervisor 服务
pkg install py27-supervisor
配置 supervisor 服务
ee /usr/local/etc/supervisord.conf
启用
port=127.0.0.1:9001
[include]
追加
[include]后面加入
files = supervisor/conf.d/*.conf
建立程序目录
mkdir -p /usr/local/etc/supervisor/conf.d
mkdir -p /var/log/supervisord/odoo
配置文件
ee /usr/local/etc/supervisor/conf.d/odoo.conf
[program:odoo]
command=python3.6 odoo-bin --addons-path=addons --db-filter=odoo
directory=/applicaion/odoo/
autorestart=true
stderr_logfile=/var/log/supervisord/odoo/odoo-err.log
stdout_logfile=/var/log/supervisord/odoo/odoo-out.log
environment=HOME="/applicaion/odoo",USER="odoo"
user=odoo
stopsignal=INT
autorestart=true
startsecs=1
系统服务配置
ee /etc/rc.conf
追加
supervisord_enable="YES"
重启服务
service supervisord restart
备注:若是无法启动,执行此命令:unlink /var/run/supervisor/supervisor.sock
使用 supervisorctl 管理交互界面
http://192.16.1.12:9001