我有一个ansible playbook,我想在一台机器上注册的变量在另一台机器上可用.
在我的情况下,我想localhost
在这种情况下 运行命令git rev-parse --abbrev-ref HEAD
,所以我可以记下当前的git分支和sha1,并注册这个输出,所以我可以在以后工作任何机器时参考它该main
集团在第二个上场.
但是,我不清楚如何在localhost上注册变量,所以我可以从main访问它.当我尝试在第二次播放中访问变量时,我收到以下消息:
TASK: [debug msg={{ app_git_sha1.stdout }}] ***********************************
fatal: [main] => One or more undefined variables: 'app_git_sha1' is undefined
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的剧本.有什么明显我应该做的吗?
---
- hosts: localhost
connection: local
gather_facts: no
tasks:
- name: register current branch
command: git rev-parse --abbrev-ref HEAD
register: git_branch
sudo: no
when: vagrant
tags:
- debugsha
- debug: msg={{ git_branch.stdout }}
tags:
- debugsha
- name: register the SHA1 of the branch being deployed
command: git …
Run Code Online (Sandbox Code Playgroud) gist.github.com非常方便,但我希望能够在内部与我工作的防火墙后面的其他开发人员共享代码示例,因此我不需要经常对代码进行消毒. ,只是谈谈代码示例.
有这样的事吗?
我不是在使用大型项目管理工具,只是一种方法来制作一次性的要点,并轻松地分享链接,这也恰好是git repos,就像gist.github.com
我正在寻找一个基于GUI的RegExp测试器,这个测试器在rubular.com中,或者这个用于OS X的JavaScript表达式测试器,在编写正则表达式时帮助我.
使用多种语言(即Python,JavaScript或Ruby)非常方便.
除了在键入工具时使用MacVim自己的find,或者像Vim或Emacs这样的命令行编辑器(我使用Textmate作为我的主编辑器),我有什么选择?
我将LDAP作为在工作中管理访问服务器和源代码的可能工具,虽然我已经能够掌握基本概念,例如将用户和机器表示为实体,创建属性,以及定义哪些属性应该应用于基于应用于它们的objectClasses的实体,有一些错误对我来说仍然没有意义,我希望有人可以帮助解释它们是如何工作的.
我可以理解ou
(组织单位)是什么,我可以理解将人们置于其中,并使用groupOfNames类作为成员的容器,例如来自zytrax的 LDIF片段:
# create FIRST Level groups branch
dn: ou=groups,dc=example,dc=com
objectclass:organizationalunit
ou: groups
description: generic groups branch
# create the itpeople entry under groups
dn: cn=itpeople,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: itpeople
description: IT security group
member: cn=William Smith,ou=people,dc=example,dc=com
# create the hrpeople entry under groups
dn: cn=hrpeople,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: hrpeople
description: Human Resources group
member: cn=Robert Smith,ou=people,dc=example,dc=com
Run Code Online (Sandbox Code Playgroud)
我所追求的是这里的伪代码:
ou='Projects' /
description: This top level group has a few people in it that can create …
Run Code Online (Sandbox Code Playgroud) 我在rails应用程序上遇到了一些错误,其中包括:
ActiveRecord::StatementInvalid: Mysql::Error: Lost connection to MySQL server during query: SELECT * FROM `actions` WHERE (`foo`.`id` = 16)
Run Code Online (Sandbox Code Playgroud)
似乎正在发生的事情是mysql连接在超时后被关闭,并且rails没有注意到它为时已晚.
我找到 的补救措施似乎是在database.yaml中将reconnect标志设置为true,或者对于添加一些代码的任何数据库操作:
def some_database_operation
begin
Account.find(1)
# or some other database operations here...
rescue ActiveRecord::StatementInvalid
ActiveRecord::Base.connection.reconnect!
unless @already_retried
@already_retried = true
retry
end
raise
else
@already_retried = false
end
end
end
Run Code Online (Sandbox Code Playgroud)
我在此处列出了此选项,因为此选项显然对交易不安全:
ActiveRecord::ConnectionAdapters::MysqlAdapter.module_eval do
def execute_with_retry_once(sql, name = nil)
retried = false
begin
execute_without_retry_once(sql, name)
rescue ActiveRecord::StatementInvalid => exception
ActiveRecord::Base.logger.info "#{exception}, retried? #{retried}"
# Our database …
Run Code Online (Sandbox Code Playgroud) 我试着调整一下
当我在命令行输入git status时,我得到一个需要解析的文件列表,如下所示:
# Unmerged paths: #
# (use "git reset HEAD <file>..." to unstage)
# (use "git add <file>..." to mark resolution)
#
# both modified: apache2/templates/default/apache2.conf.erb
# both modified: bootstrap/attributes/default.rb
# both modified: iptables/metadata.rb
# both modified: kickstart/templates/default/ks.cfg.erb
# both modified: openssl/metadata.json
# both modified: postfix/metadata.json
# both modified: postfix/templates/default/main.cf.erb
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将这个文件路径列表传递到文本编辑器中,因此您可以一次编辑它们?
我可以通过简单地通过grep管道来达到这个目的:
[17:37]:git status | grep "both modified"
# both modified: apache2/templates/default/apache2.conf.erb
# both modified: bootstrap/attributes/default.rb
# both modified: iptables/metadata.rb
# both modified: kickstart/templates/default/ks.cfg.erb
# both modified: openssl/metadata.json …
Run Code Online (Sandbox Code Playgroud) 我正在Drupal 6项目上编写一些测试代码,在使用Ruby on Rails或Django等其他语言和框架之后,我无法相信这些测试似乎运行得有多慢.
Drupal.org认为这个问题是垃圾邮件,不会给我一个证明我是人的方法,所以我认为SO是下一个提出这样问题的基地,并对我的测试方法进行健全性检查.
这个要点中的以下测试代码相对简单.
总之我是:
这是我从命令行运行这些测试时的输出:
Drupal test run
---------------
Tests to be run:
- (ClientProjectTestCase)
Test run started: Thu, 29/07/2010 - 19:29
Test summary:
-------------
ClientProject feature 52 passes, 0 fails, and 0 exceptions
Test run duration: 2 min 9 sec
Run Code Online (Sandbox Code Playgroud)
我试图在每次将代码推送到中央仓库之前运行这样的测试,但是如果它在项目的早期就花了这么长时间,那么当我们有更多的测试用例时,我会害怕进一步思考它.
我该怎么做才能加快速度呢?
我正在使用MacbookPro:
我知道在上面的例子中我每次都在引导Drupal,这是一个非常昂贵的操作,但这并不是其他框架,如Ruby on Rails或Django,这是闻所未闻的,我不明白为什么它是平均的在这个项目的每个测试用例上花一点多时间.
这里有一个很好的技巧列表来加速Drupal 7,其中许多看起来也适用于Drupal 6,但我还没有机会尝试它们,听听如何这些已经为其他人解决了,因为我犯了更多盲目的小巷,
当你在这种情况下使用Drupal 6时,对你有用的是什么,以及快速获胜的地方在哪里?
每个测试用例一分钟,当我预计容易超过一百个测试用例时感到疯狂.
我正在使用Django管理员,我希望能够使用模型的现有实例作为制作新对象的模板,因此使用django admin的人不需要重新键入所有相同的属性在制作新物体时,在物体上.
我在Django管理表单底部想象它有点像这样更新单个对象:
django文档通过添加模型上的操作来解释如何添加批量操作,如下所示:
class ArticleAdmin(admin.ModelAdmin):
actions = ['make_published']
def make_published(self, request, queryset):
queryset.update(status='p')
make_published.short_description = "Mark selected stories as published"
Run Code Online (Sandbox Code Playgroud)
但是,对于我来说,如何change model
对一个对象上的单个表单执行此操作并不是很清楚,因为我只想一次应用于模型.
我该怎么做?
我猜我可能需要使用change_model形式,但除此之外,我不太确定.
有没有一种快速的方法来做到这一点而不覆盖大量的模板?
我正在开发一个使用大量png24文件的网站,以提高透明度.
我需要用png8文件替换它们,因为png24的所有png修复样式javascript解决方法导致IE6随机锁定.
请参阅此链接以了解IE6显示的症状 - http://blogs.cozi.com/tech/2008/03/transparent-pngs-can-deadlock-ie6.html
有没有人知道一种简单的方法来定位现有的png24文件,用png8替换它们?
我正在使用OS X,像Adobe桥这样的文件浏览器没有显示这个,也无法在命令行或查找器上找到信息.
救命!
我正试图在这里清理这个非常丑陋的方法,那是为了重构而哭泣,但我不确定哪种结构能做到最好(即一个案例陈述,或者只是一个精心设计的if then
陈述)
乍一看,它似乎是一个案例陈述的理想场所,有一些很好的位置when
,但我的理解是案例陈述只能用于单个变量,而不是两个,以及各种带有irb的小提琴使用散列或数组来尝试这些语句在这里也没有太多亮点.
你会怎么做?在检查这样的多个布尔值时,Ruby中是否有任何常见的技巧来避免这样的代码?
def has_just_one_kind_of_thing?(item, controller)
if (controller == 'foos' && item.widgets.blank?) || (controller == 'foos' && item.doohickeys.blank?) || (controller == 'bars' && item.widgets.blank?) || (controller == 'bars' && item.doohickeys.blank?) || (controller == 'bazes' && item.widgets.blank?) || (controller == 'bazes' && item.contraptions.blank?)
return true
else
return false
end
end
Run Code Online (Sandbox Code Playgroud)