Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 3 | source /var/onap/functions |
| 4 | |
| 5 | hbase_version=1.2.3 |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 6 | aai_src_folder=$git_src_folder/aai |
Victor Morales | f6c0bf1 | 2017-10-27 11:08:04 -0700 | [diff] [blame] | 7 | aai_repos=("aai/aai-common" "aai/aai-config" "aai/aai-data" "aai/aai-service" \ |
| 8 | "aai/babel" "aai/champ" "aai/data-router" "aai/esr-gui" "aai/esr-server" \ |
| 9 | "aai/gizmo" "aai/logging-service" "aai/model-loader" "aai/resources" \ |
| 10 | "aai/rest-client" "aai/router-core" "aai/search-data-service" \ |
| 11 | "aai/test-config" "aai/traversal" "aai/sparky-fe" "aai/sparky-be") |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 12 | |
| 13 | # install_hadoop() - Function that installs Hadoop |
| 14 | function install_hadoop { |
| 15 | local release=titan |
| 16 | local version=1.0.0 |
| 17 | local filename=$release-$version-hadoop1 |
| 18 | local dest_folder=/opt/hadoop/current |
| 19 | |
| 20 | if [ ! -d $dest_folder ]; then |
| 21 | curl http://s3.thinkaurelius.com/downloads/$release/$filename.zip -o /tmp/${filename}.zip |
| 22 | install_package unzip |
| 23 | mkdir -p $dest_folder |
| 24 | unzip /tmp/${filename}.zip -d $dest_folder |
| 25 | pushd $dest_folder/${filename} |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 26 | # Change commitlog_directory and data_file_directories values (https://stackoverflow.com/a/26856246/1707651) |
| 27 | sed -i "s|db/cassandra/data|/tmp/data|g" conf/cassandra/cassandra.yaml |
| 28 | sed -i "s|db/cassandra/commitlog|/tmp/commitlog|g" conf/cassandra/cassandra.yaml |
| 29 | |
| 30 | install_java |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 31 | ./bin/titan.sh start |
| 32 | popd |
| 33 | fi |
| 34 | } |
| 35 | |
| 36 | # install_haproxy() - Function that install HAProxy |
| 37 | function install_haproxy { |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 38 | if is_package_installed haproxy; then |
| 39 | return |
| 40 | fi |
| 41 | install_package software-properties-common |
| 42 | add-apt-repository -y ppa:vbernat/haproxy-1.7 |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 43 | install_package haproxy |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 44 | cp /var/onap/files/haproxy.cfg /etc/haproxy/ |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 45 | cp /var/onap/files/aai.pem /etc/ssl/private/ |
| 46 | chmod 640 /etc/ssl/private/aai.pem |
| 47 | chown root:ssl-cert /etc/ssl/private/aai.pem |
| 48 | mkdir /usr/local/etc/haproxy |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 49 | #echo "127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org" >> /etc/hosts |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 50 | |
| 51 | service haproxy restart |
| 52 | } |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 53 | |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 54 | # clone_all_aai_repos() - Function that clones AAI source repo. |
| 55 | function clone_all_aai_repos { |
Victor Morales | f6c0bf1 | 2017-10-27 11:08:04 -0700 | [diff] [blame] | 56 | for repo in ${aai_repos[@]}; do |
| 57 | clone_repo $repo $aai_src_folder${repo#*aai} |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 58 | done |
| 59 | } |
| 60 | |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 61 | # compile_aai_repos() - Function that compiles AAI source repo. |
| 62 | function compile_aai_repos { |
Victor Morales | f6c0bf1 | 2017-10-27 11:08:04 -0700 | [diff] [blame] | 63 | local repos=("aai/aai-common" "aai/resources" "aai/logging-service" "aai/traversal") |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 64 | if [[ "$compile_repo" == "True" ]]; then |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 65 | repos=("${aai_repos[@]}") |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 66 | fi |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 67 | |
Victor Morales | f6c0bf1 | 2017-10-27 11:08:04 -0700 | [diff] [blame] | 68 | for repo in ${repos[@]}; do |
| 69 | compile_src $aai_src_folder${repo#*aai} |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 70 | done |
| 71 | } |
| 72 | |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 73 | # setup_titan() - Function that configures AAI services to connect to Hadoop Titan |
| 74 | function setup_titan { |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 75 | local subdirectory="bundleconfig-local/etc/appprops" |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 76 | install_python_package crudini |
| 77 | |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 78 | for dirc in resources/aai-resources traversal/aai-traversal; do |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 79 | for file in titan-cached.properties titan-realtime.properties; do |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 80 | crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.backend" "cassandra" |
| 81 | crudini --set "$aai_src_folder/$dirc/$subdirectory/$file" "" "storage.hostname" "localhost" |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 82 | done |
| 83 | done |
| 84 | |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 85 | # Add the schema to the local isntance |
| 86 | compile_src $aai_src_folder/resources/aai-resources/ |
| 87 | uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 88 | pushd $aai_src_folder |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 89 | java -DAJSC_HOME=$aai_src_folder/resources/aai-resources -DBUNDLECONFIG_DIR="bundleconfig-local" -cp aai-common/aai-core/target/aai-core-1.1.0-SNAPSHOT.jar:resources/aai-resources/target/aai-resources.jar:resources/aai-resources/target/userjars/* org.openecomp.aai.dbgen.GenTester |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 90 | popd |
| 91 | } |
| 92 | |
| 93 | # start_aai_microservices() - Function that starts AAI microservices |
| 94 | function start_aai_microservices { |
Victor Morales | 7ae05a4 | 2017-08-22 14:39:00 -0500 | [diff] [blame] | 95 | install_maven |
| 96 | export MAVEN_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9446,server=y,suspend=n" |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 97 | for svc in resources traversal; do |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 98 | pushd $aai_src_folder/resources |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 99 | mvn -P runAjsc |
| 100 | popd |
| 101 | done |
| 102 | } |
| 103 | |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 104 | # _pull_hbase_image() - Pull HBase container image from a Docker Registry Hub |
| 105 | function _pull_hbase_image { |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 106 | docker_openecomp_login |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 107 | docker pull $nexus_docker_repo/aaidocker/aai-hbase-${hbase_version} |
| 108 | } |
| 109 | |
| 110 | # install_hbase() - Install HBase Service |
| 111 | function install_hbase { |
| 112 | docker rm -f hbase |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 113 | _pull_hbase_image |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 114 | docker run -d --net=host --name="hbase" $nexus_docker_repo/aaidocker/aai-hbase-${hbase_version} |
| 115 | } |
| 116 | |
| 117 | # install_ajsc() - Install ASJC Java service container |
| 118 | function install_ajsc_aai { |
| 119 | cat <<EOL > /etc/ajsc-aai.conf |
| 120 | AAI_REPO_PATH=r/aai |
| 121 | AAI_CHEF_ENV=simpledemo |
| 122 | AAI_CHEF_LOC=/var/chef/aai-data/environments |
| 123 | docker_gitbranch=master |
| 124 | EOL |
| 125 | docker rm -f aai-service |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 126 | if [[ "$build_image" == "True" ]]; then |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 127 | build_docker_image $aai_src_folder/aai-service/ajsc-aai |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 128 | else |
| 129 | pull_openecomp_image ajsc-aai |
| 130 | fi |
| 131 | |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 132 | docker run --env-file /etc/ajsc-aai.conf --name=aai-service --net=host -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt -it -d $nexus_docker_repo/openecomp/ajsc-aai:$docker_version |
| 133 | } |
| 134 | |
| 135 | # install_model_loader() Install Model Loader |
| 136 | function install_model_loader { |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 137 | cat <<EOL > /etc/model-loader.conf |
| 138 | DISTR_CLIENT_ASDC_ADDRESS=${SDC_ADDRESS:-c2.vm1.sdc.simpledemo.openecomp.org:8443} |
| 139 | DISTR_CLIENT_CONSUMER_GROUP=${UEB_CONSUMER_GROUP:-SDCGroup} |
| 140 | DISTR_CLIENT_CONSUMER_ID=${UEB_CONSUMER_GROUP_ID:-UEB} |
| 141 | DISTR_CLIENT_ENVIRONMENT_NAME=${dmaap_topic} |
| 142 | DISTR_CLIENT_PASSWORD=${SDC_PASSWORD:-OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp} |
| 143 | DISTR_CLIENT_USER=${SDC_USER:-aai} |
| 144 | |
| 145 | APP_SERVER_BASE_URL=${APP_SERVER_URL:-https://c1.vm1.aai.simpledemo.openecomp.org:8443} |
| 146 | APP_SERVER_AUTH_USER=${APP_USER:-ModelLoader} |
| 147 | APP_SERVER_KEYSTORE_PASSWORD=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o |
| 148 | APP_SERVER_AUTH_PASSWORD=${APP_PASSWORD:-OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw} |
| 149 | EOL |
| 150 | |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 151 | ARGS="" |
| 152 | |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 153 | docker rm -f model-loader-service |
| 154 | if [[ "$build_image" == "True" ]]; then |
Victor Morales | 8e08c87 | 2017-08-21 16:15:57 -0500 | [diff] [blame] | 155 | build_docker_image $aai_src_folder/model-loader/ |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 156 | ARGS+="--env-file /etc/model-loader.conf model-loader" |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 157 | else |
| 158 | pull_openecomp_image model-loader |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 159 | ARGS+="--name=model-loader-service -it -d --env-file /etc/model-loader.conf $nexus_docker_repo/openecomp/model-loader:$docker_version" |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 160 | fi |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 161 | docker run ${ARGS} |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 162 | } |
| 163 | |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 164 | # _wait_for_sdc() - Function that determines if SDC is up and running |
| 165 | function _wait_for_sdc { |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 166 | if [[ -s "/opt/config/sdc_ip_addr.txt" ]]; then |
| 167 | SDC_IP_ADDR=$(cat /opt/config/sdc_ip_addr.txt) |
| 168 | else |
| 169 | SDC_IP_ADDR="10.0.3.1" |
| 170 | fi |
| 171 | |
| 172 | # Run Health Check against SDC and verify that all five components are up |
| 173 | RES=$(curl http://$SDC_IP_ADDR:8181/sdc1/rest/healthCheck | grep -c "OK") |
| 174 | while [[ $RES -lt 5 ]]; do |
| 175 | RES=$(curl http://$SDC_IP_ADDR:8181/sdc1/rest/healthCheck | grep -c "OK") |
| 176 | done |
| 177 | } |
| 178 | |
| 179 | # init_aai() - Function that initialize AAI services |
| 180 | function init_aai { |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 181 | install_hadoop |
| 182 | install_haproxy |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 183 | |
Idan Amit | 1690e08 | 2017-08-20 08:58:14 +0300 | [diff] [blame] | 184 | if [[ "$clone_repo" == "True" ]]; then |
| 185 | clone_all_aai_repos |
| 186 | if [[ "$compile_repo" == "True" ]]; then |
| 187 | compile_aai_repos |
| 188 | fi |
| 189 | fi |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 190 | |
| 191 | setup_titan |
Victor Morales | 1461312 | 2017-08-22 19:51:35 -0500 | [diff] [blame] | 192 | #start_aai_microservices |
Victor Morales | 455bece | 2017-07-31 18:40:39 -0500 | [diff] [blame] | 193 | |
| 194 | mkdir -p /opt/openecomp/aai/logs |
| 195 | mkdir -p /opt/openecomp/aai/data |
Victor Morales | dd07480 | 2017-07-26 16:06:35 -0500 | [diff] [blame] | 196 | |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 197 | install_hbase |
| 198 | |
| 199 | # Wait 3 minutes before instantiating the A&AI container |
| 200 | sleep 180 |
| 201 | |
| 202 | install_ajsc_aai |
Victor Morales | 158c18c | 2017-08-06 11:23:15 -0500 | [diff] [blame] | 203 | _wait_for_sdc |
Victor Morales | 6a91997 | 2017-09-28 18:29:54 -0700 | [diff] [blame] | 204 | if [[ "$skip_install" == "False" ]]; then |
| 205 | install_model_loader |
| 206 | fi |
Victor Morales | 89ce321 | 2017-06-16 18:32:48 -0500 | [diff] [blame] | 207 | } |