小编Chr*_*ams的帖子

如何设置注册变量以在ansible中播放之间保持?

我有一个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)

deployment ansible

52
推荐指数
3
解决办法
5万
查看次数

是否有一个内部替代gist.github.com在防火墙后面运行?

gist.github.com非常方便,但我希望能够在内部与我工作的防火墙后面的其他开发人员共享代码示例,因此我不需要经常对代码进行消毒. ,只是谈谈代码示例.

有这样的事吗?

我不是在使用大型项目​​管理工具,只是一种方法来制作一次性的要点,并轻松地分享链接,这也恰好是git repos,就像gist.github.com

git gist github pastebin

30
推荐指数
3
解决办法
2万
查看次数

什么是OS X的正常表达式测试程序?

我正在寻找一个基于GUI的RegExp测试器,这个测试器在rubular.com中,或者这个用于OS X的JavaScript表达式测试器,在编写正则表达式时帮助我.

使用多种语言(即Python,JavaScript或Ruby)非常方便.

除了在键入工具时使用MacVim自己的find,或者像Vim或Emacs这样的命令行编辑器(我使用Textmate作为我的主编辑器),我有什么选择?

regex macos user-interface

26
推荐指数
1
解决办法
2万
查看次数

LDAP中的嵌套组通常如何实现?

我将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)

ldap nested-groups

16
推荐指数
2
解决办法
3万
查看次数

在什么情况下你希望Rails设置为不重新连接到MYSQL

我在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)

mysql ruby-on-rails

13
推荐指数
2
解决办法
5919
查看次数

使用git和像Vim或textmate这样的编辑器时,一次编辑冲突文件的最简单方法是什么?

我试着调整一下

当我在命令行输入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)

git conflict editor

8
推荐指数
1
解决办法
2355
查看次数

您应采取哪些步骤来加速SimpleTest?

我正在Drupal 6项目上编写一些测试代码,在使用Ruby on Rails或Django等其他语言和框架之后,我无法相信这些测试似乎运行得有多慢.

Drupal.org认为这个问题是垃圾邮件,不会给我一个证明我是人的方法,所以我认为SO是下一个提出这样问题的基地,并对我的测试方法进行健全性检查.

这个要点中的以下测试代码相对简单.

http://gist.github.com/498656

总之我是:

  • 创建几种内容类型,
  • 创造一些角色,
  • 创建用户,
  • 以用户身份创建内容,
  • 检查内容是否可以由他们编辑
  • 检查匿名用户是否可以看到它

这是我从命令行运行这些测试时的输出:



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:

  • 4gb的ram,
  • 2.2ghz Core 2 Duo处理器,
  • PHP 5.2,
  • Apache 2.2.14,没有任何操作码缓存,Mysql 5.1.42(Innodb表是我的默认值)
  • 一台5400转的笔记本电脑硬盘

我知道在上面的例子中我每次都在引导Drupal,这是一个非常昂贵的操作,但这并不是其他框架,如Ruby on Rails或Django,这是闻所未闻的,我不明白为什么它是平均的在这个项目的每个测试用例上花一点多时间.

这里有一个很好的技巧列表来加速Drupal 7,其中许多看起来也适用于Drupal 6,但我还没有机会尝试它们,听听如何这些已经为其他人解决了,因为我犯了更多盲目的小巷,

当你在这种情况下使用Drupal 6时,对你有用的是什么,以及快速获胜的地方在哪里

每个测试用例一分钟,当我预计容易超过一百个测试用例时感到疯狂.

php mysql testing performance drupal

6
推荐指数
2
解决办法
2434
查看次数

如何在Django Admin中将自定义操作添加到更改模型表单?

我正在使用Django管理员,我希望能够使用模型的现有实例作为制作新对象的模板,因此使用django admin的人不需要重新键入所有相同的属性在制作新物体时,在物体上.

我在Django管理表单底部想象它有点像这样更新单个对象:

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形式,但除此之外,我不太确定.

有没有一种快速的方法来做到这一点而不覆盖大量的模板?

python django django-admin

6
推荐指数
2
解决办法
5465
查看次数

你怎么能从png24告诉png8

我正在开发一个使用大量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桥这样的文件浏览器没有显示这个,也无法在命令行或查找器上找到信息.

救命!

photoshop graphics png png-8 png-24

5
推荐指数
1
解决办法
4783
查看次数

如何重构这个6行方法以使其更具可读性?

我正试图在这里清理这个非常丑陋的方法,那是为了重构而哭泣,但我不确定哪种结构能做到最好(即一个案例陈述,或者只是一个精心设计的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)

ruby oop refactoring readability code-readability

5
推荐指数
2
解决办法
485
查看次数