在vagrant up上添加/ etc / hosts进入主机的条目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vagrant up上添加/ etc / hosts进入主机的条目相关的知识,希望对你有一定的参考价值。
在vagrant up
进程中,是否可以修改主机上的文件?例如,在主机的/etc/hosts
文件中添加一个条目以避免必须手动执行此操作?
解决方案是使用vagrant-hostsupdater
vagrant plugin install vagrant-hostsupdater
此插件会在主机系统上的/ etc / hosts文件中添加一个条目。
在启动和重新加载命令时,它会尝试添加信息(如果信息在主机文件中尚未存在)。如果需要添加,则会要求您输入管理员密码,因为它使用sudo编辑文件。
停止,暂停和销毁时,这些条目将再次被删除。
好的,所以现在坐在咖啡店旁边的那个人很有可能 ssh到2222端口 (编辑:在较新版本的vagrant上更改,除非您明确启用外部访问)在您的计算机上,使用不安全密钥登录为vagrant,修改您的Vagrant文件,因为它是读写并由vagrant用户拥有,插入任意ruby代码在主机环境中运行,现在看起来他们也在主机环境中拥有root访问权限。辉煌。
我希望人们在他们的开发机器上运行防火墙。
编辑:
因此,在写完上述内容后,我对Vagrant的作者进行了窃听,默认情况已被更改,因此默认情况下端口2222未在外部接口上打开。大的改进(虽然仍然需要注意,因为外部访问经常因各种原因而被打开)。
因此,自从发表评论以来我已经努力解决问题,我现在正在减少选票,显然是因为评论过时了。该死的。写的时候是对的。
编辑:
回应Steve Buzonas,关键在于,如果虚拟机的任何可能性受到损害,那么给予vagrant up
进程提升权限会对主机环境的安全性造成严重威胁,并且还能够修改/ etc / hosts即使没有一般的root访问权限,环境文件也很危险。正如我已经指出的那样,vagrant保持VM安全的方法并不是特别严格。
我不想依赖一些插入流浪汉。它应该是Vagrant的标准功能!!!!直到我使用shell脚本在我的新VM集群中传播VM。关键是:
# Obtain the hostkey based on the IP-address and add it to the known_host list
ssh-keyscan -t ecdsa ${START}.${OFFSET} >> /home/vagrant/.ssh/known_hosts
# obtain the hostname, because you might not know it yet, with the IP address:
EXTERNAL_HOSTNAME=`ssh ${START}'.'${OFFSET} 'hostname'`
# obtain the key ot the new other VM based on hostname and also add to known_hosts
ssh-keyscan -t ecdsa ${EXTERNAL_HOSTNAME} >> /home/vagrant/.ssh/known_hosts
# so now you have the IP address and the corresponding hostname
# add to /etc/hosts without being asked for "yes/no"
echo ${START}'.'${OFFSET}' '${EXTERNAL_HOSTNAME} >> /etc/hosts
其中IPADRRESS是集群中主VM的IP地址,其中多个从节点VM具有成功的IP地址。 (IPADDRESS = IPADDRESS + 1直到没有成功ping)
IPADDRESS=`ip addr show eth1 | grep 'inet ' | cut -d ' ' -f 6 | cut -d '/' -f1`
START=`echo ${IPADDRESS} | cut -d '.' -f1,2,3`
OFFSET=`echo ${IPADDRESS} | cut -d '.' -f4`
然后我循环通过下一个IP地址,直到没有更多的成功ping。我不想硬编码任何东西(ip-address或hostname),但要找出自己。
产生/ etc / hosts文件(在排序/ etc / hosts | uniq> /tmp/hosts.uniq && sudo sh -c'mv /tmp/hosts.uniq / etc / hosts'之后:
[vagrant@master ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 master.RHEL70.local master
192.168.1.50 master.RHEL70.local
192.168.1.51 node01.RHEL70.local
192.168.1.52 node02.RHEL70.local
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
以前我不知道如何对我的etc / host文件进行vagrant编辑。但是,当我重新安装窗口和流浪汉时,此功能消失了。
以上是关于在vagrant up上添加/ etc / hosts进入主机的条目的主要内容,如果未能解决你的问题,请参考以下文章
Vagrant VirtualBox Cisco AnyConnect 路由问题与 ***
Homestead 修改 Homestead.yaml 文件后 vagrant up 报错的问题
如何在“vagrant up”上传递参数并将其置于 Vagrantfile 的范围内?