在 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 后,无法从浏览器连接的主要内容,如果未能解决你的问题,请参考以下文章

ruby 测试:在Vagrant机器中安装Consul

解决docker容器中安装软件无权限问题

无法在 Jenkins 中安装 Groovy 插件

linux中安装jenkins

在 Amazon Linux 中安装 Jenkins 时出错

无法在 Docker 中部署的 Jenkins 中安装插件