2015-09-01 5 views
1

Я пытаюсь настроить псевдоним для быстрого ssh во вновь созданный узел, когда создаю экземпляр AWS в . Я делаю это, запустивTerraform `local-exec`, чтобы установить локальный псевдоним

# Handy alias to quickly ssh into newly created host 
provisioner "local-exec" { 
    command = "alias sshopenldap='ssh -i ${var.key_path} [email protected]${aws_instance.ldap_instance.public_dns}'" 
} 

Когда я вижу выход этого исполнения:

aws_instance.ldap_instance (local-exec): Executing: /bin/sh -c "alias sshopenldap='ssh -i ~/.ssh/mykey.pem [email protected]'" 

Это, кажется, хорошо, но он же не установлен. Может ли быть так, что способ запуска команды завершает его в новой области, а не в текущей оболочке? Если я скопирую вставку, то команда как есть в консоли, алиас настроен отлично.

Есть ли обходной путь для этого?

Я работаю на терракоте терминала MacOS X Mountain Lion.

ответ

1

Невозможно установить псевдоним для текущей оболочки в файле сценария, который вы пытаетесь сделать. Единственный способ выйти из этого - не запустить сценарий, а вместо этого исправить его. Итак:

source somefile.sh 

вместо того чтобы исполнять его, должен сделать трюк.

+0

благодаря @Stephan W., я постараюсь его и вернуться к вам. – bitoiu

2

Вы могли бы попробовать что-то вроде:

# Handy alias to quickly ssh into newly created host 
provisioner "local-exec" { 
    command = "echo \"alias sshopenldap='ssh -i ${var.key_path} [email protected]${aws_instance.ldap_instance.public_dns}'\" > script.sh && source script.sh && rm -rf source.sh" 
} 

Не знаю, как цитата маскирование пойдет ...

Смежные вопросы