You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by de...@apache.org on 2018/06/14 18:05:15 UTC
[trafficcontrol] 03/20: straighten out vars; write configs
This is an automated email from the ASF dual-hosted git repository.
dewrich pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
commit e068e34b57fdf4350041b99e377a7fe92b9320d9
Author: Dan Kirkwood <da...@gmail.com>
AuthorDate: Fri Jun 1 16:35:17 2018 +0000
straighten out vars; write configs
---
infrastructure/cdn-in-a-box/traffic_ops/Dockerfile | 5 +
.../cdn-in-a-box/traffic_ops/Dockerfile-dbinit | 8 -
.../cdn-in-a-box/traffic_ops/Dockerfile-go | 10 +-
infrastructure/cdn-in-a-box/traffic_ops/config.sh | 121 +++++++++++
infrastructure/cdn-in-a-box/traffic_ops/dbInit.sh | 1 +
.../cdn-in-a-box/traffic_ops/docker-compose.yml | 66 +++---
infrastructure/cdn-in-a-box/traffic_ops/run-go.sh | 64 ++++++
infrastructure/cdn-in-a-box/traffic_ops/run.sh | 240 +++------------------
.../cdn-in-a-box/traffic_ops/variables.env | 20 ++
9 files changed, 272 insertions(+), 263 deletions(-)
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile
index c176522..1ec9bcf 100644
--- a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile
+++ b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile
@@ -55,6 +55,9 @@ RUN export PERL5LIB=/opt/traffic_ops/app/local/lib/perl5/:/opt/traffic_ops/insta
&& export USER=root \
&& /opt/traffic_ops/install/bin/download_web_deps -i
+# TODO: move this up along with other yum's
+RUN yum -y install nmap-ncat openssl
+
# \todo add Drive Letters to postinstall input
# RUN sed -i -- 's/"value": "b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y"/"value": "0"/g' /opt/traffic_ops/install/data/profiles/profile.trafficserver_edge.traffic_ops
# RUN sed -i -- 's/"value": "b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y"/"value": "0"/g' /opt/traffic_ops/install/data/profiles/profile.trafficserver_mid.traffic_ops
@@ -67,5 +70,7 @@ EXPOSE 443
WORKDIR /opt/traffic_ops/app
ENV MOJO_MODE production
ADD profile.origin.traffic_ops /
+
+ADD config.sh /
ADD run.sh /
CMD /run.sh
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-dbinit b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-dbinit
index 9704aaa..8c92b79 100644
--- a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-dbinit
+++ b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-dbinit
@@ -30,13 +30,5 @@ RUN yum -y install \
cpanminus && \
yum clean all
-ENV POSTGRES_HOME $POSTGRES_HOME
-ENV PGPASSWORD $PGPASSWORD
-ENV DB_USERNAME $DB_USERNAME
-ENV DB_NAME $DB_NAME
-ENV DB_USER_PASS $DB_USER_PASS
-ENV DB_SERVER $DB_SERVER
-ENV DB_PORT $DB_PORT
-
ADD dbInit.sh /
CMD /dbInit.sh
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-go b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-go
index b7e8038..b270863 100644
--- a/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-go
+++ b/infrastructure/cdn-in-a-box/traffic_ops/Dockerfile-go
@@ -21,11 +21,15 @@
############################################################
-FROM traffic_ops:2.3.0 AS trafficops-perl
+FROM centos:7
+RUN yum -y install nmap-ncat openssl
-COPY --from=trafficops-perl /opt/traffic_ops/app/conf /opt/traffic_ops/app/conf
+RUN mkdir -p /opt/traffic_ops/app/bin /opt/traffic_ops/app/conf/production
COPY --from=trafficops-perl /opt/traffic_ops/app/bin/traffic_ops_golang /opt/traffic_ops/app/bin/traffic_ops_golang
EXPOSE 443
WORKDIR /opt/traffic_ops/app
-ENTRYPOINT bash
+
+ADD config.sh /
+ADD run-go.sh /
+CMD /run-go.sh
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/config.sh b/infrastructure/cdn-in-a-box/traffic_ops/config.sh
new file mode 100755
index 0000000..a7217fd
--- /dev/null
+++ b/infrastructure/cdn-in-a-box/traffic_ops/config.sh
@@ -0,0 +1,121 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Script for running the Dockerfile for Traffic Ops.
+# The Dockerfile sets up a Docker image which can be used for any new Traffic Ops container;
+# This script, which should be run when the container is run (it's the ENTRYPOINT), will configure the container.
+#
+# The following environment variables must be set, ordinarily by `docker run -e` arguments:
+# DB_SERVER
+# DB_PORT
+# DB_ROOT_PASS
+# DB_USER
+# DB_USER_PASS
+# DB_NAME
+# ADMIN_USER
+# ADMIN_PASS
+# CERT_COUNTRY
+# CERT_STATE
+# CERT_CITY
+# CERT_COMPANY
+# DOMAIN
+
+# Check that env vars are set
+envvars=( DB_SERVER DB_PORT DB_ROOT_PASS DB_USER DB_USER_PASS ADMIN_USER ADMIN_PASS CERT_COUNTRY CERT_STATE CERT_CITY CERT_COMPANY DOMAIN)
+for v in $envvars
+do
+ if [[ -z $$v ]]; then echo "$v is unset"; exit 1; fi
+done
+
+key=/server.key
+crt=/server.crt
+
+openssl req -newkey rsa:2048 -nodes -keyout $key -x509 -days 365 -out $crt -subj "/C=$CERT_COUNTRY/ST=$CERT_STATE/L=$CERT_CITY/O=$CERT_COMPANY"
+chown trafops:trafops $key $crt
+
+cat <<-EOF >/opt/traffic_ops/app/conf/cdn.conf
+{
+ "hypnotoad" : {
+ "listen" : [
+ "https://[::]:60443?cert=$crt&key=$key&verify=0x00&ciphers=AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!EDH:!ED"
+ ],
+ "user" : "trafops",
+ "group" : "trafops",
+ "heartbeat_timeout" : 20,
+ "pid_file" : "/var/run/traffic_ops.pid",
+ "workers" : 12
+ },
+ "traffic_ops_golang" : {
+ "port" : "443",
+ "proxy_timeout" : 60,
+ "proxy_keep_alive" : 60,
+ "proxy_tls_timeout" : 60,
+ "proxy_read_header_timeout" : 60,
+ "read_timeout" : 60,
+ "read_header_timeout" : 60,
+ "write_timeout" : 60,
+ "idle_timeout" : 60,
+ "log_location_error": "/var/log/traffic_ops/error.log",
+ "log_location_warning": "/var/log/traffic_ops/warning.log",
+ "log_location_info": "/var/log/traffic_ops/info.log",
+ "log_location_debug": "/var/log/traffic_ops/debug.log",
+ "log_location_event": "/var/log/traffic_ops/access.log",
+ "max_db_connections": 20,
+ "backend_max_connections": {
+ "mojolicious": 4
+ }
+ },
+ "cors" : {
+ "access_control_allow_origin" : "*"
+ },
+ "to" : {
+ "base_url" : "http://localhost:3000",
+ "email_from" : "no-reply@traffic-ops-domain.com",
+ "no_account_found_msg" : "A Traffic Ops user account is required for access. Please contact your Traffic Ops user administrator."
+ },
+ "portal" : {
+ "base_url" : "http://localhost:8080/!#/",
+ "email_from" : "no-reply@traffic-portal-domain.com",
+ "pass_reset_path" : "user",
+ "user_register_path" : "user"
+ },
+ "secrets" : [
+ "mONKEYDOmONKEYSEE."
+ ],
+ "geniso" : {
+ "iso_root_path" : "/opt/traffic_ops/app/public"
+ },
+ "inactivity_timeout" : 60
+}
+EOF
+
+cat <<-EOF >/opt/traffic_ops/app/conf/production/database.conf
+{
+ "description": "Local PostgreSQL database on port 5432",
+ "dbname": "$DB_NAME",
+ "hostname": "$DB_SERVER",
+ "user": "$DB_USER",
+ "password": "$DB_USER_PASS",
+ "port": "$DB_PORT",
+ "ssl": false,
+ "type": "Pg"
+}
+EOF
+
+cat /opt/traffic_ops/app/conf/cdn.conf
+cat /opt/traffic_ops/app/conf/production/database.conf
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/dbInit.sh b/infrastructure/cdn-in-a-box/traffic_ops/dbInit.sh
index f4392d4..2398f0c 100755
--- a/infrastructure/cdn-in-a-box/traffic_ops/dbInit.sh
+++ b/infrastructure/cdn-in-a-box/traffic_ops/dbInit.sh
@@ -26,5 +26,6 @@ while ! nc $DB_SERVER $DB_PORT </dev/null; do # &>/dev/null; do
echo "waiting for $DB_SERVER:$DB_PORT"
sleep 3
done
+
psql -h $DB_SERVER -U postgres -c "CREATE USER $DB_USER WITH ENCRYPTED PASSWORD '$DB_USER_PASS'"
createdb $DB_NAME -h $DB_SERVER -U postgres --owner $DB_USER
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/docker-compose.yml b/infrastructure/cdn-in-a-box/traffic_ops/docker-compose.yml
index 0001648..23f91ee 100644
--- a/infrastructure/cdn-in-a-box/traffic_ops/docker-compose.yml
+++ b/infrastructure/cdn-in-a-box/traffic_ops/docker-compose.yml
@@ -33,7 +33,15 @@
version: '2.1'
networks:
- cdnnet:
+ dbnet:
+ driver: bridge
+ enable_ipv6: true
+ ipam:
+ driver: default
+ config:
+ - subnet: 172.13.239.0/24
+ - subnet: "fc01:9400:1000:8::/64"
+ trafficopsnet:
driver: bridge
enable_ipv6: true
ipam:
@@ -45,19 +53,19 @@ networks:
services:
db:
image: postgres:9.6.6
+ networks:
+ - dbnet
+ env_file:
+ - variables.env
# TODO: change to expose: "5432" to limit to containers
ports:
- "5432:5432"
dbinit:
- environment:
- POSTGRES_HOME: /usr/pgsql-9.6
- PGPASSWORD: password
- DB_NAME: traffic_ops
- DB_PORT: 5432
- DB_SERVER: db
- DB_USER_PASS: password
- DB_USER: traffic_ops
+ networks:
+ - dbnet
+ env_file:
+ - variables.env
build:
context: .
dockerfile: Dockerfile-dbinit
@@ -66,21 +74,11 @@ services:
trafficops-perl:
image: trafficops-perl
- environment:
- DB_NAME: traffic_ops
- DB_PORT: 5432
- DB_ROOT_PASS: password
- DB_SERVER: db
- DB_USER_PASS: password
- DB_USER: traffic_ops
- ADMIN_USER: superroot
- ADMIN_PASS: password
- CERT_COUNTRY: US
- CERT_STATE: Colorado
- CERT_CITY: Denver
- CERT_COMPANY: NotComcast
- TRAFFIC_VAULT_PASS: password
- DOMAIN: trafficops_default
+ networks:
+ - dbnet
+ - trafficopsnet
+ env_file:
+ - variables.env
expose:
- "60443"
build:
@@ -92,21 +90,11 @@ services:
trafficops:
image: trafficops-go
- environment:
- DB_NAME: traffic_ops
- DB_PORT: 5432
- DB_ROOT_PASS: password
- DB_SERVER: db
- DB_USER_PASS: password
- DB_USER: traffic_ops
- ADMIN_USER: superroot
- ADMIN_PASS: password
- CERT_COUNTRY: US
- CERT_STATE: Colorado
- CERT_CITY: Denver
- CERT_COMPANY: NotComcast
- TRAFFIC_VAULT_PASS: password
- DOMAIN: trafficops_default
+ networks:
+ - dbnet
+ - trafficopsnet
+ env_file:
+ - variables.env
ports:
- "443:443"
build:
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/run-go.sh b/infrastructure/cdn-in-a-box/traffic_ops/run-go.sh
new file mode 100755
index 0000000..284ba60
--- /dev/null
+++ b/infrastructure/cdn-in-a-box/traffic_ops/run-go.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Script for running the Dockerfile for Traffic Ops.
+# The Dockerfile sets up a Docker image which can be used for any new Traffic Ops container;
+# This script, which should be run when the container is run (it's the ENTRYPOINT), will configure the container.
+#
+# The following environment variables must be set, ordinarily by `docker run -e` arguments:
+# DB_SERVER
+# DB_PORT
+# DB_ROOT_PASS
+# DB_USER
+# DB_USER_PASS
+# DB_NAME
+# ADMIN_USER
+# ADMIN_PASS
+# CERT_COUNTRY
+# CERT_STATE
+# CERT_CITY
+# CERT_COMPANY
+# DOMAIN
+
+# TODO: Unused -- should be removed? TRAFFIC_VAULT_PASS
+
+# Check that env vars are set
+
+set -x
+envvars=( DB_SERVER DB_PORT DB_ROOT_PASS DB_USER DB_USER_PASS ADMIN_USER ADMIN_PASS CERT_COUNTRY CERT_STATE CERT_CITY CERT_COMPANY DOMAIN)
+for v in $envvars
+do
+ if [[ -z $$v ]]; then echo "$v is unset"; exit 1; fi
+done
+
+# Write config files
+if [[ -x /config.sh ]]; then
+ /config.sh
+fi
+
+while ! nc trafficops-perl 60443 </dev/null; do # &>/dev/null; do
+ echo "waiting for trafficops-perl:60443"
+ sleep 3
+done
+
+cd /opt/traffic_ops/app
+ls -l bin
+CDNCONF=/opt/traffic_ops/app/conf/cdn.conf
+DBCONF=/opt/traffic_ops/app/conf/production/database.conf
+mkdir -p /var/log/traffic_ops
+./bin/traffic_ops_golang -cfg $CDNCONF -dbcfg $DBCONF
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/run.sh b/infrastructure/cdn-in-a-box/traffic_ops/run.sh
index 48efc54..14cc836 100755
--- a/infrastructure/cdn-in-a-box/traffic_ops/run.sh
+++ b/infrastructure/cdn-in-a-box/traffic_ops/run.sh
@@ -44,250 +44,64 @@ do
if [[ -z $$v ]]; then echo "$v is unset"; exit 1; fi
done
+# Write config files
+if [[ -x /config.sh ]]; then
+ /config.sh
+fi
+
+while true; do
+ echo "Checking for existence of role $DB_USER"
+ psql -U postgres -h $DB_SERVER -p $DB_PORT postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='$DB_USER'" | grep -q 1 && break
+ sleep 3
+done
+
start() {
TO_DIR=/opt/traffic_ops/app
+ export PERL5LIB=$TO_DIR/lib:$TO_DIR/local/lib/perl5
cd $TO_DIR && $TO_DIR/local/bin/hypnotoad script/cdn
exec tail -f /var/log/traffic_ops/traffic_ops.log
}
init() {
- local postinstall_input_file="postinstall-input.json"
- cat > "$postinstall_input_file" <<- ENDOFMESSAGE
-{
- "/opt/traffic_ops/app/conf/production/database.conf":[
- {
- "Database type":"Pg",
- "config_var":"type"
- },
- {
- "Database name":"$DB_NAME",
- "config_var":"dbname"
- },
- {
- "Database server hostname IP or FQDN":"$DB_SERVER",
- "config_var":"hostname"
- },
- {
- "Database port number":"$DB_PORT",
- "config_var":"port"
- },
- {
- "Traffic Ops database user":"$DB_USER",
- "config_var":"user"
- },
- {
- "Traffic Ops database password":"$DB_USER_PASS",
- "config_var":"password",
- "hidden":"1"
- }
- ],
- "/opt/traffic_ops/app/db/dbconf.yml":[
- {
- "Database server root (admin) user":"postgres",
- "config_var":"pgUser"
- },
- {
- "Database server admin password":"$DB_ROOT_PASS",
- "config_var":"pgPassword",
- "hidden":"1"
- },
- {
- "Download Maxmind Database?":"yes",
- "config_var":"maxmind"
- }
- ],
- "/opt/traffic_ops/app/conf/cdn.conf":[
- {
- "Generate a new secret?":"yes",
- "config_var":"genSecret"
- },
- {
- "Port to serve on?": "443",
- "config_var": "port"
- },
- {
- "Number of workers?": "12",
- "config_var":"workers"
- },
- {
- "Traffic Ops url?": "https://$HOSTNAME",
- "config_var": "base_url"
- },
- {
- "Number of secrets to keep?":"1",
- "config_var":"keepSecrets"
- }
- ],
- "/opt/traffic_ops/app/conf/ldap.conf":[
- {
- "Do you want to set up LDAP?":"no",
- "config_var":"setupLdap"
- },
- {
- "LDAP server hostname":"",
- "config_var":"host"
- },
- {
- "LDAP Admin DN":"",
- "config_var":"admin_dn"
- },
- {
- "LDAP Admin Password":"",
- "config_var":"admin_pass",
- "hidden":"1"
- },
- {
- "LDAP Search Base":"",
- "config_var":"search_base"
- }
- ],
- "/opt/traffic_ops/install/data/json/users.json":[
- {
- "Administration username for Traffic Ops":"$ADMIN_USER",
- "config_var":"tmAdminUser"
- },
- {
- "Password for the admin user":"$ADMIN_PASS",
- "config_var":"tmAdminPw",
- "hidden":"1"
- }
- ],
- "/opt/traffic_ops/install/data/profiles/":[
- {
- "Add custom profiles?":"no",
- "config_var":"custom_profiles"
- }
- ],
- "/opt/traffic_ops/install/data/json/openssl_configuration.json":[
- {
- "Do you want to generate a certificate?":"yes",
- "config_var":"genCert"
- },
- {
- "Country Name (2 letter code)":"$CERT_COUNTRY",
- "config_var":"country"
- },
- {
- "State or Province Name (full name)":"$CERT_STATE",
- "config_var":"state"
- },
- {
- "Locality Name (eg, city)":"$CERT_CITY",
- "config_var":"locality"
- },
- {
- "Organization Name (eg, company)":"$CERT_COMPANY",
- "config_var":"company"
- },
- {
- "Organizational Unit Name (eg, section)":"",
- "config_var":"org_unit"
- },
- {
- "Common Name (eg, your name or your server's hostname)":"$HOSTNAME",
- "config_var":"common_name"
- },
- {
- "RSA Passphrase":"passphrase",
- "config_var":"rsaPassword",
- "hidden":"1"
- }
- ],
- "/opt/traffic_ops/install/data/json/profiles.json":[
- {
- "Traffic Ops url":"https://$HOSTNAME",
- "config_var":"tm.url"
- },
- {
- "Human-readable CDN Name. (No whitespace, please)":"cdn",
- "config_var":"cdn_name"
- },
- {
- "Health Polling Interval (milliseconds)":"8000",
- "config_var":"health_polling_int"
- },
- {
- "DNS sub-domain for which your CDN is authoritative":"$HOSTNAME.$DOMAIN",
- "config_var":"dns_subdomain"
- },
- {
- "TLD SOA admin":"traffic_ops",
- "config_var":"soa_admin"
- },
- {
- "TrafficServer Drive Prefix":"/dev/ram",
- "config_var":"driver_prefix"
- },
- {
- "TrafficServer RAM Drive Prefix":"/dev/ram",
- "config_var":"ram_drive_prefix"
- },
- {
- "TrafficServer RAM Drive Letters (comma separated)":"1",
- "config_var":"ram_drive_letters"
- },
- {
- "Health Threshold Load Average":"25",
- "config_var":"health_thresh_load_avg"
- },
- {
- "Health Threshold Available Bandwidth in Kbps":"1750000",
- "config_var":"health_thresh_kbps"
- },
- {
- "Traffic Server Health Connection Timeout (milliseconds)":"2000",
- "config_var":"health_connect_timeout"
- }
- ]
-}
- ENDOFMESSAGE
-
- # TODO determine if term, user are necessary
- export TERM=xterm && export USER=root && /opt/traffic_ops/install/bin/postinstall -cfile "$postinstall_input_file"
-
- # Only listen on IPv4, not IPv6, because Docker doesn't provide a v6 interface by default. See http://mojolicious.org/perldoc/Mojo/Server/Daemon#listen
- sed -i -e 's#https://\[::\]#https://127\.0\.0\.1#' /opt/traffic_ops/app/conf/cdn.conf
- service traffic_ops restart
-
TRAFFIC_OPS_URI="https://localhost"
- TMP_TO_COOKIE="$(curl -v -s -k -X POST --data '{ "u":"'"$ADMIN_USER"'", "p":"'"$ADMIN_PASS"'" }' $TRAFFIC_OPS_URI/api/1.2/user/login 2>&1 | grep 'Set-Cookie' | sed -e 's/.*mojolicious=\(.*\); expires.*/\1/')"
- echo "Got cookie: $TMP_TO_COOKIE"
+ COOKIE="$(curl -v -s -k -X POST --data '{ "u":"'"$ADMIN_USER"'", "p":"'"$ADMIN_PASS"'" }' $TRAFFIC_OPS_URI/api/1.2/user/login 2>&1 | grep 'Set-Cookie' | sed -e 's/.*mojolicious=\(.*\); expires.*/\1/')"
+ echo "Got cookie: $COOKIE"
TMP_DOMAIN=$DOMAIN
sed -i -- "s/{{.Domain}}/$TMP_DOMAIN/g" /profile.origin.traffic_ops
echo "Got domain: $TMP_DOMAIN"
echo "Importing origin"
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" -F "filename=profile.origin.traffic_ops" -F "profile_to_import=@/profile.origin.traffic_ops" $TRAFFIC_OPS_URI/profile/doImport
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" -F "filename=profile.origin.traffic_ops" -F "profile_to_import=@/profile.origin.traffic_ops" $TRAFFIC_OPS_URI/profile/doImport
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" --data-urlencode "division.name=East" $TRAFFIC_OPS_URI/division/create
- TMP_DIVISION_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/region/add | grep --color=never -oE "<option value=\"[0-9]+\">East</option>" | grep --color=never -oE "[0-9]+")"
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" --data-urlencode "division.name=East" $TRAFFIC_OPS_URI/division/create
+ TMP_DIVISION_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/region/add | grep --color=never -oE "<option value=\"[0-9]+\">East</option>" | grep --color=never -oE "[0-9]+")"
echo "Got division ID: $TMP_DIVISION_ID"
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" --data-urlencode "region.name=Eastish" --data-urlencode "region.division_id=$TMP_DIVISION_ID" $TRAFFIC_OPS_URI/region/create
- TMP_REGION_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/api/1.2/regions.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="Eastish"]; print match[0]')"
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" --data-urlencode "region.name=Eastish" --data-urlencode "region.division_id=$TMP_DIVISION_ID" $TRAFFIC_OPS_URI/region/create
+ TMP_REGION_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/api/1.2/regions.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="Eastish"]; print match[0]')"
echo "Got region ID: $TMP_REGION_ID"
- TMP_CACHEGROUP_TYPE="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/api/1.2/types.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="MID_LOC"]; print match[0]')"
+ TMP_CACHEGROUP_TYPE="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/api/1.2/types.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="MID_LOC"]; print match[0]')"
echo "Got cachegroup type ID: $TMP_CACHEGROUP_TYPE"
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" --data-urlencode "cg_data.name=mid-east" --data-urlencode "cg_data.short_name=east" --data-urlencode "cg_data.latitude=0" --data-urlencode "cg_data.longitude=0" --data-urlencode "cg_data.parent_cachegroup_id=-1" --data-urlencode "cg_data.type=$TMP_CACHEGROUP_TYPE" $TRAFFIC_OPS_URI/cachegroup/create
- TMP_CACHEGROUP_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/api/1.2/cachegroups.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="mid-east"]; print match[0]')"
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" --data-urlencode "cg_data.name=mid-east" --data-urlencode "cg_data.short_name=east" --data-urlencode "cg_data.latitude=0" --data-urlencode "cg_data.longitude=0" --data-urlencode "cg_data.parent_cachegroup_id=-1" --data-urlencode "cg_data.type=$TMP_CACHEGROUP_TYPE" $TRAFFIC_OPS_URI/cachegroup/create
+ TMP_CACHEGROUP_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/api/1.2/cachegroups.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="mid-east"]; print match[0]')"
echo "Got cachegroup ID: $TMP_CACHEGROUP_ID"
- TMP_CACHEGROUP_EDGE_TYPE="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/api/1.2/types.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="EDGE_LOC"]; print match[0]')"
+ TMP_CACHEGROUP_EDGE_TYPE="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/api/1.2/types.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="EDGE_LOC"]; print match[0]')"
echo "Got cachegroup type ID: $TMP_CACHEGROUP_EDGE_TYPE"
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" --data-urlencode "cg_data.name=edge-east" --data-urlencode "cg_data.short_name=eeast" --data-urlencode "cg_data.latitude=0" --data-urlencode "cg_data.longitude=0" --data-urlencode "cg_data.parent_cachegroup_id=$TMP_CACHEGROUP_ID" --data-urlencode "cg_data.type=$TMP_CACHEGROUP_EDGE_TYPE" $TRAFFIC_OPS_URI/cachegroup/create
- TMP_CACHEGROUP_EDGE_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$TMP_TO_COOKIE" $TRAFFIC_OPS_URI/api/1.2/cachegroups.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="edge-east"]; print match[0]')"
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" --data-urlencode "cg_data.name=edge-east" --data-urlencode "cg_data.short_name=eeast" --data-urlencode "cg_data.latitude=0" --data-urlencode "cg_data.longitude=0" --data-urlencode "cg_data.parent_cachegroup_id=$TMP_CACHEGROUP_ID" --data-urlencode "cg_data.type=$TMP_CACHEGROUP_EDGE_TYPE" $TRAFFIC_OPS_URI/cachegroup/create
+ TMP_CACHEGROUP_EDGE_ID="$(curl -s -k -X GET -H "Cookie: mojolicious=$COOKIE" $TRAFFIC_OPS_URI/api/1.2/cachegroups.json | python -c 'import json,sys;obj=json.load(sys.stdin);match=[x["id"] for x in obj["response"] if x["name"]=="edge-east"]; print match[0]')"
echo "Got cachegroup edge ID: $TMP_CACHEGROUP_EDGE_ID"
- curl -v -k -X POST -H "Cookie: mojolicious=$TMP_TO_COOKIE" --data-urlencode "location.name=plocation-nyc-1" --data-urlencode "location.short_name=nyc" --data-urlencode "location.address=1 Main Street" --data-urlencode "location.city=nyc" --data-urlencode "location.state=NY" --data-urlencode "location.zip=12345" --data-urlencode "location.poc=" --data-urlencode "location.phone=" --data-urlencode "location.email=no@no.no" --data-urlencode "location.comments=" --data-urlencode "location.re [...]
+ curl -v -k -X POST -H "Cookie: mojolicious=$COOKIE" --data-urlencode "location.name=plocation-nyc-1" --data-urlencode "location.short_name=nyc" --data-urlencode "location.address=1 Main Street" --data-urlencode "location.city=nyc" --data-urlencode "location.state=NY" --data-urlencode "location.zip=12345" --data-urlencode "location.poc=" --data-urlencode "location.phone=" --data-urlencode "location.email=no@no.no" --data-urlencode "location.comments=" --data-urlencode "location.region=$T [...]
echo "INITIALIZED=1" >> /etc/environment
}
source /etc/environment
-if [ -z "$INITIALIZED" ]; then init; fi
+#if [ -z "$INITIALIZED" ]; then init; fi
start
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/variables.env b/infrastructure/cdn-in-a-box/traffic_ops/variables.env
new file mode 100644
index 0000000..1ca486b
--- /dev/null
+++ b/infrastructure/cdn-in-a-box/traffic_ops/variables.env
@@ -0,0 +1,20 @@
+DOMAIN=domain
+CERT_CITY=Denver
+CERT_COMPANY=NotComcast
+CERT_COUNTRY=US
+CERT_STATE=CO
+DB_NAME=traffic_ops
+DB_USER_PASS=twelve
+DB_PORT=5432
+DB_SERVER=db
+DB_USER=traffic_ops
+POSTGRES_PASSWORD=twelve
+PGPASSWORD=twelve
+TO_ADMIN_PASSWORD=twelve
+TO_ADMIN_USER=admin
+TO_EMAIL=cdnadmin@example.com
+TO_HOST=trafficops
+TO_PORT=443
+TO_SECRET=blahblah
+TP_EMAIL=none
+TP_HOST=none
--
To stop receiving notification emails like this one, please contact
dewrich@apache.org.