_______________________________________
Setup ODOO on EC2 & RDS (Insecure)
_______________________________________
Go to https://www.odoo.com and make sure you understand the needs for an ERP system at your startup. I would advice that you evaluate the pros & cons for using an ERP before jumping into this bureaucratic complication.
Security is prime and make sure you realize that I have not covered any aspect of securing the instance or the application here.
1. Intallation pre-requisites
a. Initialize a RDS PostgreSql service on AWS.
b. Initialize an EC2 instance with Amazon Linux in the same security group as RDS
yum install git libtool zlib devel automake pkgconfig gcc c++ curl make gcc-c++ libxml2-devel rsync yum install openldap-devel libjpeg-devel python-devel vim yum -y install babel libxslt-python pyparsing python-dateutil python-decorator python-docutils python-feedparser python-imaging python-jinja2 python-ldap python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-reportlab python-requests python-simplejson python-unittest2 python-vobject python-werkzeug python-yaml pytz yum install icu xorg-x11-fonts-75dpi freetype freetype-devel > Setup Node yum install nodejs npm npm install -g less less-plugin-clean-css ln -s /usr/local/bin/lessc /usr/bin/lessc ln -s /usr/bin/nodejs /usr/bin/node > CentOS 6 yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm wget https://bitbucket.org/wkhtmltopdf/wkhtmltopdf/downloads/wkhtmltox-0.13.0-alpha-7b36694_linux-centos6-amd64.rpm rpm -ivh wkhtmltox-0.13.0-alpha-7b36694_linux-centos6-amd64.rpm > CentOS 7 yum localinstall https://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-redhat93-9.3-3.noarch.rpm wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm rpm -Uvh wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm yum install postgresql93-contrib postgresql93-devel postgresql93-plpython27
Now lets get the odoo source on the machine to start the setup git clone https://github.com/odoo/odoo.git Go to your odoo directory and install the python packages easy_install -U setuptools easy_install pip pip install -r requirements.txt
2. Create a config file openerp-server.conf with the below content
[options] ; This is the password that allows database operations: ; admin_passwd = admin db_host = admindb.xxxxxxx.us-west-2.rds.amazonaws.com db_port = 5432 db_user = admin db_password = admin123 addons_path = /usr/lib/python2.7/dist-packages/openerp/addons logfile = /tmp/odoo-server.log xmlrpc_port = 8069
Setup a RDS with postgres database server
psql -h admindb.xxxxxxx.us-west-2.rds.amazonaws.com -U admin admindb CREATE USER admin WITH PASSWORD 'admin123'; ALTER USER admin CREATEDB;
3. Run the server with the configurations
chown -R ec2-user odoo ./odoo-bin --addons-path=addons --config=openerp-server.conf
4. Configure the EC2 Instance
a.) IP routing on the instance. Not secure, but will provide the basic routing to start your system.
iptables -t nat -A OUTPUT -p tcp -d ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com --dport 80 -j REDIRECT --to-port 8069 iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8069
Make sure you verify the iptables. sudo iptables -t nat -L -v Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8069 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination REDIRECT tcp -- anywhere ip-xxx-xxx-xxx-xxx.us-west-2.compute.internal tcp dpt:http redir ports 8069 Chain POSTROUTING (policy ACCEPT) target prot opt source destination
b.) Security group config for port 80. Add exception for incoming HTTP traffic
5. Run the ODOO server as a service
echo "Killing any previous instance of odoo" ps ax | grep odoo | grep -v grep | awk '{print $1}' | xargs sudo kill echo "Starting the Odoo server" nohup ./odoo-bin --addons-path=addons --config=openerp-server.conf -d oodb -u all &> /dev/null & disown echo "Conf : ~/odoo/odoo/openerp-server.conf" echo "Log : tail -f /tmp/odoo-server.log"
6. Login as admin / admin
http://ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com