123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- """
- 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.
- """
- # configure the VM to set Docker, Weave network, run Ambari-agent inside the Docker
- # argv 1: the external IP of this VM
- # argv 2: the Weave IP of the Ambari-server
- # argv 3: the external IP of the Ambari-server
- # argv 4: the name of the cluster
- import sys
- from config import Config
- from cluster import Cluster
- if __name__ == "__main__":
- if len(sys.argv) < 5:
- print "configure the VM to set Docker, Weave network, run Ambari-agent inside the Docker"
- print "Args: <the external IP of this VM>"
- print " <the Weave IP of the Ambari-server>"
- print " <the external IP of the Ambari-server>"
- print " <the name of the cluster>"
- exit(1)
- Config.load()
- my_external_ip = sys.argv[1]
- server_weave_ip = sys.argv[2]
- server_external_ip = sys.argv[3]
- cluster_name = sys.argv[4]
- cluster = Cluster.load_from_json(cluster_name)
- vm_ip_list = []
- vm_ip_list.append(server_external_ip)
- # This will decide the topology of the Weave network.
- # This connect all agents to other agents,
- # which is not necessary, connecting to ambari-server and service server is enough.
- # for vm in cluster.ambari_agent_vm_list:
- # vm_ip_list.append(vm.external_ip)
- # This connect all agents to all service server
- for vm in cluster.service_server_vm_list:
- vm_ip_list.append(vm.external_ip)
- vm = cluster.get_agent_vm(my_external_ip)
- vm.run_docker(server_weave_ip, vm_ip_list)
|