From fee7a511d4c57e0245b3b0b9a25a3e85c4fbd0a8 Mon Sep 17 00:00:00 2001 From: Dan Kirkwood Date: Thu, 9 Mar 2017 16:51:34 -0700 Subject: [PATCH 1/3] add INSTALL.md instructions --- INSTALL.md | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 INSTALL.md diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000000..f1a9ab0638 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,101 @@ +# From new CentOS 7 install: + +## Disable selinux: +### change `/etc/selinux/config` to `SELINUX=disabled` + +## Install Postgreql 9.6 client and libraries + +Instructions are here: https://yum.postgresql.org/ + +- grab the link for CentOS 7 and install: + $ sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-xxxx.noarch.rpm + +- install `postgresql96` (for psql commands) and `postgresql96-devel` (for includes/libraries needed to install `DBD::Pg` perl library) + $ sudo yum install postgresql96 postgresql96-devel + +## Install Postgres 9.6 server (in a container or on the host) + +### on the host: + $ sudo yum install postgresql96-server + +### -or- in a container + +NOTE: you do *not* need postgresql96-server if running postgres within a `docker` container. + +Install `docker` and `docker-compose` using instructions here: + https://docs.docker.com/engine/installation/linux/centos/ + https://docs.docker.com/compose/install/ + +Add yourself to `docker` group + $ sudo usermod -G docker $USER + +Remember to logout and login again.. You should see `docker` in your list of groups: + + $ id + uid=9876(myuser) gid=9876(myuser) groups=9876(myuser),990(docker) ... + +Start a docker container to run postgres + $ cd incubator-trafficcontrol/traffic_ops/app/db/pg-migration + $ ./start_postgres.sh + +Edit `mysql-to-postgres.yml` to suit your needs. +- modify `POSTGRES_*` vars to apply to new postgres container that will house + +If migrating from an existing pre-2.0 traffic_ops server (mysql): +- `TO_*` vars for admin access to existing mysql-based `traffic_ops` (to get a db dump) +- `MYSQL_*` vars to apply to temporary mysql container + +Run migration from existing mysql-based `traffic_ops` + $ ./migrate.sh + +## Install `traffic_ops` + $ sudo yum install traffic_ops + +## Install `go` and `gcc` (required for `goose` and some `Perl` modules) + $ sudo yum install go gcc + +## Install Perl modules + $ sudo cpanm Carton + +IMPORTANT!!: We're using a later version of Postgresql, so it's not installed in the default place. +We need to tell carton where it is so the `DBD::Pg` module is installed correctly. + + $ sudo su - + # cd /opt/traffic_ops/app + # POSTGRES_HOME=/usr/pgsql-9.6 /usr/local/bin/carton + + +## Install goose + $ sudo GOPATH=/tmp GOBIN=/usr/local/bin go get bitbucket.org/liamstask/goose/cmd/goose + + +## Modify `traffic_ops` configuration + +- `/opt/traffic_ops/app/db` + - `dbconf.yml` + - modify "production" line to match user/pass from env file above +- `/opt/traffic_ops/app/conf` + - `cdn.conf` + - set workers to desired value (96 is far too high for dev environment -- 15 is suggested) + - change `to.base_url` to appropriate FQDN or IP address + - `ldap.conf` + - add ldap server credentials if needed + - `production/database.conf` + - modify to match user/pass from env file above + - `production/riak.conf`, `production/influxdb.conf` + - add appropriate user/password + - `production/log4perl.conf` + - if logging data needed, change ERROR to DEBUG on first line + +## Initialize the db + $ cd /opt/traffic_ops/app + $ PERL5LIB=$(pwd)/lib:$(pwd)/local/lib/perl5 db/admin.pl --env=production setup + +## Install any extensions needed + - install in /opt/traffic_ops_extensions + +## Install `openssl` certs (or use this to generate them) + - `sudo /opt/traffic_ops/install/bin/generateCert` + +## Install web dependencies + - `sudo /opt/traffic_ops/install/bin/download_web_deps` From 28d821ae057ccf3b295f7fbce3625c1b8b08f3f6 Mon Sep 17 00:00:00 2001 From: Dan Kirkwood Date: Tue, 14 Mar 2017 17:10:05 -0600 Subject: [PATCH 2/3] INSTALL.md is just for traffic_ops --- INSTALL.md => traffic_ops/INSTALL.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename INSTALL.md => traffic_ops/INSTALL.md (100%) diff --git a/INSTALL.md b/traffic_ops/INSTALL.md similarity index 100% rename from INSTALL.md rename to traffic_ops/INSTALL.md From 7d4447f47e8e200ca9ffecd0c1c7a287c90725f8 Mon Sep 17 00:00:00 2001 From: Dan Kirkwood Date: Wed, 15 Mar 2017 13:43:10 -0600 Subject: [PATCH 3/3] adds example urls and vars; other small fixes --- traffic_ops/INSTALL.md | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/traffic_ops/INSTALL.md b/traffic_ops/INSTALL.md index f1a9ab0638..4b41fb9da9 100644 --- a/traffic_ops/INSTALL.md +++ b/traffic_ops/INSTALL.md @@ -8,14 +8,19 @@ Instructions are here: https://yum.postgresql.org/ - grab the link for CentOS 7 and install: - $ sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-xxxx.noarch.rpm + $ sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-xxxx.noarch.rpm + + NOTE: get a valid link from https://yum.postgresql.org/ with the correct version number. + - install `postgresql96` (for psql commands) and `postgresql96-devel` (for includes/libraries needed to install `DBD::Pg` perl library) + $ sudo yum install postgresql96 postgresql96-devel ## Install Postgres 9.6 server (in a container or on the host) ### on the host: + $ sudo yum install postgresql96-server ### -or- in a container @@ -23,10 +28,13 @@ Instructions are here: https://yum.postgresql.org/ NOTE: you do *not* need postgresql96-server if running postgres within a `docker` container. Install `docker` and `docker-compose` using instructions here: + https://docs.docker.com/engine/installation/linux/centos/ + https://docs.docker.com/compose/install/ Add yourself to `docker` group + $ sudo usermod -G docker $USER Remember to logout and login again.. You should see `docker` in your list of groups: @@ -34,27 +42,37 @@ Remember to logout and login again.. You should see `docker` in your list of g $ id uid=9876(myuser) gid=9876(myuser) groups=9876(myuser),990(docker) ... +Edit `mysql-to-postgres.env` to suit your needs. +* modify `POSTGRES_*` vars to apply to new postgres container that will house your database, e.g. + * POSTGRES_USER=postgres + * POSTGRES_PASSWORD=itSas3cre4 + +If migrating from an existing pre-2.0 traffic_ops server (mysql): +* `TO_*` vars for admin access to existing mysql-based `traffic_ops` (to get a db dump), e.g. + * TO_SERVER=https://trafficops.example.com + * TO_USER=dennisr + +* `MYSQL_*` vars to apply to temporary mysql container -- really no need to change.. + Start a docker container to run postgres + $ cd incubator-trafficcontrol/traffic_ops/app/db/pg-migration $ ./start_postgres.sh -Edit `mysql-to-postgres.yml` to suit your needs. -- modify `POSTGRES_*` vars to apply to new postgres container that will house - -If migrating from an existing pre-2.0 traffic_ops server (mysql): -- `TO_*` vars for admin access to existing mysql-based `traffic_ops` (to get a db dump) -- `MYSQL_*` vars to apply to temporary mysql container - Run migration from existing mysql-based `traffic_ops` + $ ./migrate.sh ## Install `traffic_ops` + $ sudo yum install traffic_ops ## Install `go` and `gcc` (required for `goose` and some `Perl` modules) + $ sudo yum install go gcc ## Install Perl modules + $ sudo cpanm Carton IMPORTANT!!: We're using a later version of Postgresql, so it's not installed in the default place. @@ -66,6 +84,7 @@ We need to tell carton where it is so the `DBD::Pg` module is installed correctl ## Install goose + $ sudo GOPATH=/tmp GOBIN=/usr/local/bin go get bitbucket.org/liamstask/goose/cmd/goose @@ -88,14 +107,18 @@ We need to tell carton where it is so the `DBD::Pg` module is installed correctl - if logging data needed, change ERROR to DEBUG on first line ## Initialize the db + $ cd /opt/traffic_ops/app $ PERL5LIB=$(pwd)/lib:$(pwd)/local/lib/perl5 db/admin.pl --env=production setup ## Install any extensions needed + - install in /opt/traffic_ops_extensions ## Install `openssl` certs (or use this to generate them) + - `sudo /opt/traffic_ops/install/bin/generateCert` ## Install web dependencies + - `sudo /opt/traffic_ops/install/bin/download_web_deps`