diff --git a/lib/bootstrap.py b/lib/bootstrap.py index fda1c2ee64dc0f7b711c2c2c6668fcee637c5762..c936606bb4d6371698e0d3b3d54c7c60e88ba1f5 100644 --- a/lib/bootstrap.py +++ b/lib/bootstrap.py @@ -126,7 +126,8 @@ def _InitGanetiServerSetup(): def InitCluster(cluster_name, mac_prefix, def_bridge, master_netdev, file_storage_dir, candidate_pool_size, secondary_ip=None, vg_name=None, beparams=None, hvparams=None, - enabled_hypervisors=None, default_hypervisor=None): + enabled_hypervisors=None, default_hypervisor=None, + modify_etc_hosts=True): """Initialise the cluster. @type candidate_pool_size: int @@ -236,7 +237,9 @@ def InitCluster(cluster_name, mac_prefix, def_bridge, f.close() sshkey = sshline.split(" ")[1] - utils.AddHostToEtcHosts(hostname.name) + if modify_etc_hosts: + utils.AddHostToEtcHosts(hostname.name) + _InitSSHSetup() # init of cluster config file @@ -258,6 +261,7 @@ def InitCluster(cluster_name, mac_prefix, def_bridge, beparams={constants.BEGR_DEFAULT: beparams}, hvparams=hvparams, candidate_pool_size=candidate_pool_size, + modify_etc_hosts=opts.modify_etc_hosts, ) master_node_config = objects.Node(name=hostname.name, primary_ip=hostname.ip, diff --git a/lib/cmdlib.py b/lib/cmdlib.py index ae2267ad560c75fb0cd57b47bf1ea02eddbbdf32..19196637be928ca6e0e88f118fcc755e362f9e61 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2378,7 +2378,8 @@ class LUAddNode(LogicalUnit): " new node: %s" % msg) # Add node to our /etc/hosts, and add key to known_hosts - utils.AddHostToEtcHosts(new_node.name) + if self.cfg.GetClusterInfo().modify_etc_hosts: + utils.AddHostToEtcHosts(new_node.name) if new_node.secondary_ip != new_node.primary_ip: result = self.rpc.call_node_has_ip_address(new_node.name, diff --git a/lib/objects.py b/lib/objects.py index 23bb0f9776b96f4bc97212a56610752a2cb54917..13e78dd05548d1d1f4a065009090a0135f586d22 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -752,8 +752,16 @@ class Cluster(TaggableObject): "hvparams", "beparams", "candidate_pool_size", + "modify_etc_hosts", ] + def UpgradeConfig(self): + """Fill defaults for missing configuration values. + + """ + if self.modify_etc_hosts is None: + self.modify_etc_hosts = True + def ToDict(self): """Custom function for cluster. diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster index e6cb4f70cbf4cfb0745dd928f504d76cde04614e..fff42bb1f858580193b3965c219d92a678309923 100755 --- a/scripts/gnt-cluster +++ b/scripts/gnt-cluster @@ -105,6 +105,7 @@ def InitCluster(opts, args): hvparams=hvparams, beparams=beparams, candidate_pool_size=opts.candidate_pool_size, + modify_etc_hosts=opts.modify_etc_hosts, ) return 0 @@ -582,6 +583,10 @@ commands = { help="No support for lvm based instances" " (cluster-wide)", action="store_false", default=True,), + make_option("--no-etc-hosts", dest="modify_etc_hosts", + help="Don't modify /etc/hosts" + " (cluster-wide)", + action="store_false", default=True,), make_option("--enabled-hypervisors", dest="enabled_hypervisors", help="Comma-separated list of hypervisors", type="string", default=None),