Articles of ruby

EC2与torquebox和nginx的错误网关

我用torquebox和nginx设置了一个EC2实例。 Torquebox启动没有任何错误,但我不能在端口8080访问它。即使我添加VPC规则来打开该端口。 我得到网关超时,如果我去死的myip:8080和坏网关,如果我访问myip这个nginxconfiguration: server { listen 80 default deferred; # server_name ; location / { access_log off; proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 我试图设置proxy_pass到服务器IP,但这也没有帮助。 nginx日志包含以下错误: connect() failed (113: No route to host) while connecting to upstream, client: "myip", server: , request: "GET / HTTP/1.1", upstream "http://"myserverip":8080/", host: "myserverip" […]

木偶和windowsfeature – 布尔错误

我是Puppet Enterprise的新手,但是尝试学习如何将自定义类文件部署到Windows服务器。 我正在尝试使用opentable / windowsfeature模块,但是当我的类尝试在节点上运行时出现错误。 它看起来像是在windowsfeature模块中抛出这个错误 – 错误:无法从远程服务器检索目录:SERVER上的错误400:“true”不是布尔值。 它看起来是一个string在/etc/puppetlabs/puppet/environments/production/modules/windowsfeature/manifests/init.pp:64节点test-server-02.testdomain.local警告:不使用caching失败的目录错误:无法检索目录; 跳过跑步 有没有人看过这个错误之前,或知道如何解决它? 模块代码尝试初始化variables为false,但我很困惑,为什么当它尝试做一个validate_bool($重新启动),错误是说它被设置为“真正的”string值。 以下是我已安装的模块列表: [root @ testserver01〜]#puppet模块列表 的/ etc / puppetlabs /木偶/环境/生产/模块 ├──linux_base_config(???) ├──nanliu-staging(v1.0.2) ├──opentable-windowsfeature(v1.0.0) ├──puppetlabs-concat(v1.1.2) ├──puppetlabs-powershell(v1.0.4) ├──puppetlabs-registry(v1.0.3) ├──puppetlabs-stdlib(v4.4.0) ├──puppetlabs-tomcat(v1.2.0) └──windows_base_config(???) / etc / puppetlabs / puppet / modules(没有安装模块) 的/ opt /木偶/共享/木偶/模块 ├──puppetlabs-pe_accounts(v2.0.2-6-gd2f698c) ├──puppetlabs-pe_concat(v1.1.2-4-g2b7bba2) ├──puppetlabs-pe_console_prune(v0.1.1-4-g293f45b) ├──puppetlabs-pe_inifile(v1.1.4-16-gcb39966) ├──puppetlabs-pe_java_ks(v1.2.4-35-g44fbb26) ├──puppetlabs-pe_postgresql(v3.4.4-15-g32e56ed) ├──puppetlabs-pe_razor(v0.2.1-9-g8d78ec2) ├──puppetlabs-pe_repo(v0.7.7-51-g5ba0427) ├──puppetlabs-pe_staging(v0.3.3-2-g3ed56f8) ├──puppetlabs-puppet_enterprise(v3.7.1-5-ga436912) └──puppetlabs-reboot(v0.1.8)

mcollective – 不同的rubypath/环境

如何告诉mcollective服务器使用不同的rubypath,否则控制ruby环境? 我在Centos 6.5上运行,并将ruby193集合安装到服务器和客户端上。 我正在尝试使用需要Ruby 1.9的puppetlabs'shell'代理( https://github.com/puppetlabs/mcollective-shell-agent )。 当我尝试这样一个简单的'ls'命令: mco shell run ls 我所得到的是: * [ ================> ] 1/1 The shell application failed to run: undefined method `sort_by!' for #<Array:blahblahblah> 这对于我来说像mcollective是默认安装在/usr/bin/ruby的系统安装的Ruby 1.8,而不是使用位于/ opt / rh / ruby​​193下的PATHruby。 当我安装ruby193集合时,它将一大堆文件放在/ opt / rh / ruby​​193中,并且需要一个源代码来设置脚本。 我已经把脚本放在/etc/profile.d ,但是我猜测mcollective并没有使用它? 任何想法/回答SF问题指向我将是非常有益的! 或者是一个集体工作的“shell”代理,那也可以:)。 我只是试图运行一个特定的(但dynamic)框设置的shell命令!

访问被拒绝在LDAP上创build用户

我有一个Web应用程序需要能够在LDAP上创build用户。 我创build了一个cn=intranet,dc=example,dc=com ,我需要它可以添加用户unside ou=People,dc=example,dc=com 。 所以我试图添加用户作为cn=intranet使用属性如: dn = "uid=something,ou=People,dc=telecom-etude,dc=com" attrs = { cn: 'something', givenName: 'something', sn: 'something', uid: 'something', displayName: 'something', objectClass: ["inetOrgPerson", 'top', 'Person' ], } ldap = Devise::LDAP::Connection.admin # returns a Net::LDAP binding with `cn=intranet` ldap.add(dn: dn, attributes: attrs) 无论我做什么,我似乎都被困住了 (Net::LDAP) LDAP Creation ERROR : #<OpenStruct code=50, error_message="no write access to parent", […]

独angular兽在USR2上以相同的PID重新启动

最近我们将Rails应用程序迁移到了MRI 2.2.0(可能与此无关),我们遇到了Unicorn零宕机重启的问题。 当我发送USR2信号到主进程(在本例中是PID 19216)时,我在独angular兽日志中得到以下信息: I, [2015-03-11T23:47:33.992274 #6848] INFO — : executing ["/srv/ourapp/shared/bundle/ruby/2.2.0/bin/unicorn", "/srv/ourapp/current/config.ru", "-Dc", "/srv/ourapp/shared/config/unicorn.rb", {10=>#<Kgio::UNIXServer:/srv/ourapp/shared/sockets/unicorn.sock>}] (in /srv/ourapp/releases/a0e8b5df474ad5129200654f92a76af00a750f47) I, [2015-03-11T23:47:36.504235 #6848] INFO — : inherited addr=/srv/ourapp/shared/sockets/unicorn.sock fd=10 /srv/ourapp/shared/bundle/ruby/2.2.0/gems/unicorn-4.8.1/lib/unicorn/http_server.rb:206:in `pid=': Already running on PID:19216 (or pid=/srv/ourapp/shared/pids/unicorn.pid is stale) (ArgumentError) from /srv/ourapp/shared/bundle/ruby/2.2.0/gems/unicorn-4.8.1/lib/unicorn/http_server.rb:134:in `start' from /srv/ourapp/shared/bundle/ruby/2.2.0/gems/unicorn-4.8.1/bin/unicorn:126:in `<top (required)>' from /srv/ourapp/shared/bundle/ruby/2.2.0/bin/unicorn:23:in `load' from /srv/ourapp/shared/bundle/ruby/2.2.0/bin/unicorn:23:in `<main>' E, [2015-03-11T23:47:36.519549 #19216] ERROR […]

Ubuntu的12.04 ruby​​1.8取决于不再存在的libreadline5?

我刚刚build立了一个新的12.04 Ubuntu的盒子,并试图安装木偶包。 这失败了,因为它不能加载ruby1.8。 经过一番讨论后,我跟踪了这​​个问题,直到libreadline5软件包不再可用。 libreadline安装版本6,但libruby1.8正在寻找一个名为libreadline5的软件包。 由于各种无聊的原因,我坚持12.04和傀儡2.7(不要问;) 不知道如何从这里开始?

获得403禁止w。 引用Nginx + Passenger

我们使用的是Nginx 1.6.2 + Passenger 5.0.6,并且有一个用PHP-FPM定义的虚拟主机,它提供了一个MODx安装。 只有一个位置/ sinatraapp使用Ruby 2.1.1服务Sinatra应用程序。 设置如下,工作相当好,但我们遇到了一个奇怪的问题。 在向Referer发送请求时,nginx响应403 Forbidden,而Sinatra App / Passenger发回302(302redirect在这种情况下是正确的响应!)。 在没有引用者的情况下执行请求时,它按预期工作。 不起作用: curl -H "Referer: https://www.example.org" https://example.com/sinatraapp 工作: curl -H "Referer: -" https://example.com/sinatraapp 而将Referer-Header完全离开也是可行的。 Sinatra应用程序将302用户到一个MODx subsite example.com/de/something。 Nginxconfiguration: server { listen [::]:443 ssl spdy ipv6only=on; listen 443 ssl spdy; server_name www.example.com; charset utf-8; ssl_certificate /etc/ssl/certs/example_com.crt; ssl_certificate_key /etc/ssl/private/example_com.key; ssl_trusted_certificate /etc/ssl/certs/example_com_bundle.crt; ssl_session_cache shared:SSL:10m; […]

编译ruby1.8.6与openssl 0.9.8

我试图在CentOS7上安装ruby 1.8.6并成功完成,但是ruby无法加载openssl。 我的安装步骤如下。 从源代码安装openssl 0.9.8。 wget http://www.openssl.org/source/openssl-0.9.8zb.tar.gz tar xzf openssl-0.9.8zb.tar.gz cd openssl-0.9.8zb ./config –prefix=/usr/local shared make && make install openssl version OpenSSL 0.9.8zb 6 Aug 2014 cd 从源代码安装ruby1.8.6。 # Fix timeout.rb:59: [BUG] Segmentation fault export CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls" wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p420.tar.gz tar xvfvz ruby-1.8.6-p420.tar.gz cd ruby-1.8.6-p420 ./configure make && make install ruby -v ruby 1.8.6 (2010-09-02 […]

Dashing / shopify仪表板Rubygem错误

我正在尝试使用Dashing构build一个小型仪表板。 这个仪表板应该从SQL数据库中获取数据。 这是我的代码 require 'rubygems' require 'mysql2' SCHEDULER.every '15m', :first_in => 0 do |job| db = Mysql2::Client.new(:host => "localhost",:username => "root", :password => "password", :port => 3306, :database => "cbbreporter" ) sql1="select count(*) from cbbjobs" sql2="select count(*) from cbbjobs WHERE JobResult=\"Failed\"" sql3="select count(*) from cbbjobs WHERE JobResult=\"Success\"" totaljobsrun = db.query(sql1) failedjobs = db.query(sql2) successjobs=db.query(sql3) totaljobsrun.each […]

Ruby on Rails Debian最佳实践

我曾在不同的地方看到,使用Ruby通过克隆的rbenv git仓库从源代码编译的Ruby,然后通过RubyGems安装Rails来获取最新版本。 但是,据我所知,这在Debian中并不是最佳实践,他们build议从apt-get获取所有内容 ,因为稍后更新Debian可能会导致问题。 所以,我迷失在这里了,是否应该坚持使用Debian APT提供的Rails软件包? (我知道这是Rails 4.1,我不介意那些shiny的新东西综合症,但我怎么能保证它通过Debian获得安全修复?) 我无法相信通过rbenv从源代码编译Ruby,通过RubyGems安装乘客,独angular兽和rails对于生产服务器来说足够稳定,这真的是人们如何configuration生产环境?