我正在尝试设置一个别名,以便在terraform中创建AWS实例时快速ssh到新创建的主机中。我这样做是通过运行
$new_name=time().".".$extension;// new name with current timestamp
move_uploaded_file($_FILES["file"]["tmp_name"],"docmument_upload/" . $new_name);
当我看到此执行的输出时:
# Handy alias to quickly ssh into newly created host
provisioner "local-exec" {
command = "alias sshopenldap='ssh -i ${var.key_path} ubuntu@${aws_instance.ldap_instance.public_dns}'"
}
似乎没问题,但是没有设置别名。这可能是命令运行的方式,它将它包装在一个新的范围而不是当前的shell之一?如果我将命令复制粘贴到控制台,则别名设置正确。
有解决方法吗?
我在MacOS X Mountain Lion的终端上运行terraform。
答案 0 :(得分:2)
您可以尝试以下方式:
# Handy alias to quickly ssh into newly created host
provisioner "local-exec" {
command = "echo \"alias sshopenldap='ssh -i ${var.key_path} ubuntu@${aws_instance.ldap_instance.public_dns}'\" > script.sh && source script.sh && rm -rf source.sh"
}
不确定报价如何逃脱...
答案 1 :(得分:1)
确实无法在脚本文件中为当前shell设置别名,这正是您尝试执行的操作。摆脱这种情况的唯一方法是不运行脚本,而是来源它。所以:
source somefile.sh
而不是执行它应该做的伎俩。