Update OOF installation scripts
[demo.git] / boot / oof_vm_init.sh
1 #!/bin/bash
2
3 NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
4 NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
5 NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
6 DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
7
8 cd /opt/optf-has
9 git pull
10
11 COND_CONF=/opt/optf-has/conductor.conf
12 LOG_CONF=/opt/optf-has/log.conf
13
14 #THE FOLLOWING LINE IS A PLACEHOLDER
15 AAI_cert=/opt/optf-has/aai_cert.cer
16
17 IMAGE_NAME="$NEXUS_DOCKER_REPO/onap/optf-has"
18
19 # MUSIC parameters
20 CASS_IMG=${NEXUS_DOCKER_REPO}/onap/music/cassandra_music:latest
21 MUSIC_IMG=${NEXUS_DOCKER_REPO}/onap/music/music:latest
22 TOMCAT_IMG=library/tomcat:8.5
23 ZK_IMG=library/zookeeper:3.4
24 WORK_DIR=/opt/optf-has
25 CASS_USERNAME=cassandra1
26 CASS_PASSWORD=cassandra1
27
28 # pull images from repo
29 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
30 docker pull ${ZK_IMG}
31 docker pull ${TOMCAT_IMG}
32 docker pull ${CASS_IMG}
33 docker pull ${MUSIC_IMG}
34 docker pull $NEXUS_DOCKER_REPO/onap/optf-has:$DOCKER_IMAGE_VERSION
35
36 # install MUSIC
37 # create directory for music properties and logs
38 mkdir -p /opt/optf-has/music/properties
39 mkdir -p /opt/optf-has/music/logs
40
41 # add music.properties file
42 cat >> /opt/optf-has/music/properties/music.properties << NEWFILE
43 my.id=0
44 all.ids=0
45 my.public.ip=localhost
46 all.public.ips=localhost
47
48 #######################################
49
50 # Optional current values are defaults
51
52 #######################################
53 zookeeper.host=music-zk
54 cassandra.host=music-db
55 #music.ip=localhost
56 #debug=true
57 #music.rest.ip=localhost
58 #lock.lease.period=6000
59 cassandra.user=cassandra1
60 cassandra.password=cassandra1
61
62 # AAF Endpoint if using AAF
63 aaf.endpoint.url=https://aaf.api.simpledemo.onap.org
64 NEWFILE
65
66 # Create Volume for mapping war file and tomcat
67 docker volume create music-vol
68
69 # Create a network for all the containers to run in.
70 docker network create music-net
71
72 # Start Cassandra
73 docker run -d --rm --name music-db --network music-net -p "7000:7000" -p "7001:7001" -p "7199:7199" -p "9042:9042" -p "9160:9160" -e CASSUSER=${CASS_USERNAME} -e CASSPASS=${CASS_PASSWORD} ${CASS_IMG}
74
75 # Start Music war
76 docker run -d --rm --name music-war -v music-vol:/app ${MUSIC_IMG}
77
78 # Start Zookeeper
79 docker run -d --rm --name music-zk --network music-net -p "2181:2181" -p "2888:2888" -p "3888:3888" ${ZK_IMG}
80
81 # Delay for Cassandra
82 sleep 20;
83
84 # Start Up tomcat - Needs to have properties,logs dir and war file volume mapped.
85 docker run -d --rm --name music-tomcat --network music-net -p "8080:8080" -v music-vol:/usr/local/tomcat/webapps -v ${WORK_DIR}/music/properties:/opt/app/music/etc:ro -v ${WORK_DIR}/music/logs:/opt/app/music/logs ${TOMCAT_IMG}
86
87 # Connect tomcat to host bridge network so that its port can be seen.
88 docker network connect bridge music-tomcat;
89
90 # Get MUSIC url
91 MUSIC_URL=$(docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-tomcat)
92
93 # Set A&AI and MUSIC url inside OOF-HAS conductor.conf
94 sed -i "138 s%.*%server_url = https://aai.api.simpledemo.onap.org:8443/aai%" $COND_CONF
95 sed -i "141 s%.*%server_url_version = v13%" $COND_CONF
96 sed -i "250 s%.*%server_url = $MUSIC_URL:8080/MUSIC/rest/v2%" $COND_CONF
97
98 # Set A&AI authentication file locations inside OOF-HAS conductor.conf
99 sed -i "153 s%.*%certificate_authority_bundle_file = $AAI_cert%" $COND_CONF
100
101 # run optf-has
102 docker run -d --name controller -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-controller --config-file=/usr/local/bin/conductor.conf
103 docker run -d --name api -p "8091:8091" -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-api --port=8091 -- --config-file=/usr/local/bin/conductor.conf
104 docker run -d --name solver -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-solver --config-file=/usr/local/bin/conductor.conf
105 docker run -d --name reservation -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-reservation --config-file=/usr/local/bin/conductor.conf
106 docker run -d --name data -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf -v $CERT:/usr/local/bin/aai_cert.cer -v $KEY:/usr/local/bin/aai_key.key -v $BUNDLE:/usr/local/bin/bundle.pem ${IMAGE_NAME}:latest python /usr/local/bin/conductor-data --config-file=/usr/local/bin/conductor.conf