Fix failure to add static route in http client VM
Add hostname in etc/hosts to prevent sudo to fail Add additional syslog in agent code Add devuser login to troubleshoot VM Change-Id: I59a28fe3eb0c354721989a3f3e1102e67949d545 Signed-off-by: ahothan <ahothan@cisco.com>
This commit is contained in:
parent
ed33269ba4
commit
fc42153774
kb_build.sh
kb_dib/elements/kloudbuster
@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
# This script will build the kloudbuster VM image and the container image under the ./build directory
|
# This script will build the kloudbuster VM image and the container image under the ./build directory
|
||||||
|
|
||||||
|
# canned user/password for direct login
|
||||||
|
export DIB_DEV_USER_USERNAME=kb
|
||||||
|
export DIB_DEV_USER_PASSWORD=kb
|
||||||
|
export DIB_DEV_USER_PWDLESS_SUDO=Y
|
||||||
|
|
||||||
|
# Set the data sources to have ConfigDrive only
|
||||||
|
export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive"
|
||||||
|
|
||||||
# Check we are in a virtual environment
|
# Check we are in a virtual environment
|
||||||
function check_in_venv {
|
function check_in_venv {
|
||||||
IN_VENV=$(python -c 'import sys; print hasattr(sys, "real_prefix")')
|
IN_VENV=$(python -c 'import sys; print hasattr(sys, "real_prefix")')
|
||||||
|
@ -5,6 +5,12 @@ KloudBuster
|
|||||||
KloudBuster Image
|
KloudBuster Image
|
||||||
Contains all the packages and files needed to run a universal KloudBuster VM
|
Contains all the packages and files needed to run a universal KloudBuster VM
|
||||||
The same image can run using one of the following roles (Assigned from the user-data python program):
|
The same image can run using one of the following roles (Assigned from the user-data python program):
|
||||||
|
|
||||||
- Server VM for a given traffic type (e.g. http server or tcp/udp server)
|
- Server VM for a given traffic type (e.g. http server or tcp/udp server)
|
||||||
- Client VM for a given traffic type (e.g. http client or tcp/udp client)
|
- Client VM for a given traffic type (e.g. http client or tcp/udp client)
|
||||||
- Redis server (only 1 instance in the client cloud)
|
- Redis server (only 1 instance in the client cloud)
|
||||||
|
|
||||||
|
The default login on the VM is
|
||||||
|
|
||||||
|
- username: kb
|
||||||
|
- password: kb
|
||||||
|
@ -51,6 +51,7 @@ sed -i 's/start-stop-daemon\ --start/ulimit\ \-n\ 102400\n\t\0/g' /etc/init.d/ng
|
|||||||
# Auto start the KloudBuster Agent, with user-data
|
# Auto start the KloudBuster Agent, with user-data
|
||||||
sed -i "s/^exit\s0/cd \/kb_test\n\0/g" /etc/rc.local
|
sed -i "s/^exit\s0/cd \/kb_test\n\0/g" /etc/rc.local
|
||||||
sed -i "s/^exit\s0/if wget http\:\/\/169.254.169.254\/latest\/user-data; then \:; fi\n\0/g" /etc/rc.local
|
sed -i "s/^exit\s0/if wget http\:\/\/169.254.169.254\/latest\/user-data; then \:; fi\n\0/g" /etc/rc.local
|
||||||
|
sed -i 's/^exit\s0/echo `hostname -I` `hostname` >>\/etc\/hosts\n\0/g' /etc/rc.local
|
||||||
sed -i "s/^exit\s0/python kb_vm_agent.py \&\n\0/g" /etc/rc.local
|
sed -i "s/^exit\s0/python kb_vm_agent.py \&\n\0/g" /etc/rc.local
|
||||||
|
|
||||||
# =================
|
# =================
|
||||||
|
@ -22,6 +22,7 @@ import struct
|
|||||||
import subprocess
|
import subprocess
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
import sys
|
import sys
|
||||||
|
import syslog
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
@ -40,7 +41,10 @@ __version__ = '7'
|
|||||||
def exec_command(cmd, cwd=None):
|
def exec_command(cmd, cwd=None):
|
||||||
p = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(stdout, stderr) = p.communicate()
|
(stdout, stderr) = p.communicate()
|
||||||
|
if p.returncode:
|
||||||
|
syslog.syslog("Command failed: " + cmd)
|
||||||
|
if stderr:
|
||||||
|
syslog.syslog(stderr)
|
||||||
return p.returncode
|
return p.returncode
|
||||||
|
|
||||||
def refresh_clock(clocks, force_sync=False):
|
def refresh_clock(clocks, force_sync=False):
|
||||||
@ -599,11 +603,13 @@ if __name__ == "__main__":
|
|||||||
cmd = ['python', 'setup.py', 'develop']
|
cmd = ['python', 'setup.py', 'develop']
|
||||||
rc = exec_command(cmd, cwd=cwd)
|
rc = exec_command(cmd, cwd=cwd)
|
||||||
if not rc:
|
if not rc:
|
||||||
|
syslog.syslog("Starting kloudbuster HTTP server")
|
||||||
cmd = ['/usr/local/bin/pecan', 'serve', 'config.py']
|
cmd = ['/usr/local/bin/pecan', 'serve', 'config.py']
|
||||||
sys.exit(exec_command(cmd, cwd=cwd))
|
sys.exit(exec_command(cmd, cwd=cwd))
|
||||||
|
|
||||||
if user_data.get('role') == 'KB-PROXY':
|
if user_data.get('role') == 'KB-PROXY':
|
||||||
agent = KBA_Proxy()
|
agent = KBA_Proxy()
|
||||||
|
syslog.syslog("Starting kloudbuster proxy server")
|
||||||
sys.exit(agent.start_redis_server())
|
sys.exit(agent.start_redis_server())
|
||||||
if user_data.get('role').endswith('Server'):
|
if user_data.get('role').endswith('Server'):
|
||||||
agent = KBA_Server(user_data)
|
agent = KBA_Server(user_data)
|
||||||
@ -621,17 +627,20 @@ if __name__ == "__main__":
|
|||||||
user_data.get('multicast_ports'),
|
user_data.get('multicast_ports'),
|
||||||
user_data.get('multicast_listener_address_start'))
|
user_data.get('multicast_listener_address_start'))
|
||||||
if agent.config_nginx_server():
|
if agent.config_nginx_server():
|
||||||
|
syslog.syslog("Starting kloudbuster nginx server")
|
||||||
sys.exit(agent.start_nginx_server())
|
sys.exit(agent.start_nginx_server())
|
||||||
else:
|
else:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
elif user_data.get('role').endswith('Client'):
|
elif user_data.get('role').endswith('Client'):
|
||||||
if user_data['role'].startswith('HTTP'):
|
if user_data['role'].startswith('HTTP'):
|
||||||
|
syslog.syslog("Starting kloudbuster HTTP client")
|
||||||
agent = KBA_HTTP_Client(user_data)
|
agent = KBA_HTTP_Client(user_data)
|
||||||
elif user_data['role'].startswith('Multicast'):
|
elif user_data['role'].startswith('Multicast'):
|
||||||
KB_Instance.add_multicast_route()
|
KB_Instance.add_multicast_route()
|
||||||
refresh_clock(user_data.get('ntp_clocks'), force_sync=True)
|
refresh_clock(user_data.get('ntp_clocks'), force_sync=True)
|
||||||
agent = KBA_Multicast_Client(user_data)
|
agent = KBA_Multicast_Client(user_data)
|
||||||
else:
|
else:
|
||||||
|
syslog.syslog("Starting kloudbuster storage client")
|
||||||
agent = KBA_Storage_Client(user_data)
|
agent = KBA_Storage_Client(user_data)
|
||||||
agent.setup_channels()
|
agent.setup_channels()
|
||||||
agent.hello_thread = threading.Thread(target=agent.send_hello)
|
agent.hello_thread = threading.Thread(target=agent.send_hello)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user