You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by my...@apache.org on 2020/05/25 09:04:26 UTC

[incubator-dlab] 01/01: [DLAB-1835]: Host resolving fixes

This is an automated email from the ASF dual-hosted git repository.

mykolabodnar pushed a commit to branch DLAB-1835
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 3a4985322f63f71e2b7890fca2e913678c89f965
Author: bodnarmykola <bo...@gmail.com>
AuthorDate: Mon May 25 12:03:43 2020 +0300

    [DLAB-1835]: Host resolving fixes
---
 .../src/base/scripts/create_ssh_user.py                  | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/infrastructure-provisioning/src/base/scripts/create_ssh_user.py b/infrastructure-provisioning/src/base/scripts/create_ssh_user.py
index 482eb2c..5a866aa 100644
--- a/infrastructure-provisioning/src/base/scripts/create_ssh_user.py
+++ b/infrastructure-provisioning/src/base/scripts/create_ssh_user.py
@@ -35,6 +35,14 @@ parser.add_argument('--sudo_group', type=str, default='')
 args = parser.parse_args()
 
 
+def resolving_hosts(initial_user):
+    if not exists('/home/{}/.hosts_resolved'.format(initial_user)):
+        host = sudo('curl http://169.254.169.254/latest/meta-data/local-hostname').split('\n')[1]
+        host_short = host.split('.')[0]
+        private_ip = sudo('curl http://169.254.169.254/latest/meta-data/local-ipv4').split('\n')[1]
+        sudo('echo "{} {} {}" >> /etc/hosts'.format(private_ip, host, host_short))
+        sudo('touch /home/{}/.hosts_resolved'.format(initial_user))
+
 def ensure_ssh_user(initial_user, os_user, sudo_group):
     if not exists('/home/{}/.ssh_user_ensured'.format(initial_user)):
         sudo('useradd -m -G {1} -s /bin/bash {0}'.format(os_user, sudo_group))
@@ -48,13 +56,19 @@ def ensure_ssh_user(initial_user, os_user, sudo_group):
         sudo('mkdir /home/{}/.ensure_dir'.format(os_user))
         sudo('touch /home/{}/.ssh_user_ensured'.format(initial_user))
 
-
 if __name__ == "__main__":
     print("Configure connections")
     env['connection_attempts'] = 100
     env.key_filename = [args.keyfile]
     env.host_string = '{}@{}'.format(args.initial_user, args.hostname)
 
+    print("Resolving hosts")
+    try:
+        resolving_hosts(args.initial_user)
+    except Exception as err:
+        print('Failed to resolve hosts', str(err))
+        sys.exit(1)
+
     print("Creating ssh user: {}".format(args.os_user))
     try:
         ensure_ssh_user(args.initial_user, args.os_user, args.sudo_group)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org