在 Vagrant 中安装 Jenkins 后,无法从浏览器连接
Posted
技术标签:
【中文标题】在 Vagrant 中安装 Jenkins 后,无法从浏览器连接【英文标题】:After Jenkins is installed in Vagrant, cannot connect from browser 【发布时间】:2013-04-11 08:09:01 【问题描述】:我正在尝试在 Vagrant 上为我的开发环境安装 Jenkins。
我为我的盒子选择了 Ubuntu http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box。这是我用来配置我的盒子的外壳。一切正常,但是当我尝试从端口 80 甚至 :8080 访问该盒子时,它只是没有响应。浏览一直在旋转。不知道我在这里做错了什么。
这是我的脚本。
sudo apt-get update
echo "APT::Cache-Limit "100000000";" >> /etc/apt/apt.conf.d/70debconf
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get -y --force-yes install jenkins
sudo apt-get -y --force-yes install apache2
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod vhost_alias
sudo a2dissite default
echo '
ServerAdmin webmaster@localhost
ServerName ci.company.com
ServerAlias ci
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
' >> /etc/apache2/sites-available/jenkins
sudo a2ensite jenkins
sudo sh -c 'echo "ServerName localhost" >> /etc/apache2/conf.d/name' && sudo service apache2 restart
sudo apache2ctl restart
我也vagrant ssh
并运行
curl 'http://localhost:8080'
它返回了 Jenkins 页面,所以我认为 Jenkins 已经正常运行。我只是无法从外部访问它。
这是我的 Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provision :shell, :path => "install-jenkins.sh"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "2024"]
end
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu64"
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network :forwarded_port, guest: 80, host: 8080
end
【问题讨论】:
标准问题:是否涉及某种防火墙? 但据我了解,空的 ubuntu 没有任何防火墙?还是我错了? 也许,我不知道您的特定机器的内部结构 - 您的 Jenkins 是否在您的 VM 中侦听端口 80,我有一些模糊的想法,它可能默认侦听端口 8080?跨度> Jepp 这似乎是一个合适的解决方法,但端口转发应该可以工作,因为我大量使用它:-) 另外请使用 10.x.y.z 作为您的内部 IP,因为 33.33.33.10 是有效的互联网地址,您将无法再访问它(或整个 33.33.33.x) 绝对正确。 IP 地址只是一个例子。 【参考方案1】:我通过为 Vagrant 框提供 IP 来完成这项工作:
config.vm.network :hostonly, "33.33.33.10"
【讨论】:
你能解释一下吗?因为它不适合我,而且我认为它不仅是主机,而且是专用网络以上是关于在 Vagrant 中安装 Jenkins 后,无法从浏览器连接的主要内容,如果未能解决你的问题,请参考以下文章