我一直在努力让Ansible配置远程机器,我希望远程机器能够设置自己的密钥,并且能够从Bitbucket克隆git存储库.
用户已设置,有自己的id_rsa.pub,并且密钥已在bitbucket中注册.
但是,当我使用Ansible Git模块时,看起来模块总是试图使用运行playbook的机器上的键.
如何让git模块使用远程机器上的id_rsa.pub?
相关的任务是这样的:
- name: be sure prom-king has an up-to-date clone of its own repository
git:
repo: "ssh://ddcrnd@bitbucket.org/prom-king.git"
dest: /home/promking/prom-king
accept_hostkey: yes
clone: yes
key_file: /home/promking/.ssh/id_rsa.pub
update: yes
Run Code Online (Sandbox Code Playgroud)
相关的库存就是这个
# inventory file for use with the vagrant box in the testing directory.
[prom-king]
192.168.168.192 ansible_ssh_host=127.0.0.1 ansible_sudo=true ansible_connection=ssh ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=testing/.vagrant/machines/default/virtualbox/private_key
Run Code Online (Sandbox Code Playgroud) 我想创建ruby应用程序(而不是rails).这是一个控制台应用程序,需要保留一些数据.我正在使用pstore作为数据库.我想将此应用程序部署为gem.
我的问题是:我的数据在哪里?
目前我已经创建了一个数据目录作为标准gem布局中bin目录的兄弟.因此,我希望gem在部署之后将其数据存储在"内部"中.但是当我进行本地gem安装测试时,我发现数据存储在本地存储到项目文件中,而不是存储在gems目录中的某个位置.
当然,我可能只是误解了"rake install_gem"正在做什么.另外,我模糊地担心,如果我需要sudo来安装gem,它实际上可以在gem目录中"内部"创建数据文件.
有人可以澄清这一点吗?
谢谢.John Schank
@makevoid - 谢谢你的回复.这是我的主要脚本的全部内容.在/ bin目录中...(我将它添加到主要问题中,因为我不熟悉如何在注释中格式化内容 - 并且粘贴的代码看起来很糟糕.
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
require 'timesheet'
begin
command_hash = TimesheetParser.parse
store = YAML::Store.new("data/time_entries.yaml")
tl = TimeLog.new(store)
ts = Timesheet.new(tl)
ts.process(command_hash)
rescue Exception => e
raise if command_hash[:debug]
puts e.message
Run Code Online (Sandbox Code Playgroud) 当我在resharper中使用测试运行器运行我的nunit测试时,我得到一个OutOfMemory异常.
在我看来,当测试套件运行时,它会在套件的持续时间内消耗内存,并且只有在整个测试集完成后才会释放内存.因此,即使我从多个程序集中运行一组测试,它们的集体内存占用也会被消耗掉,并且只会在最后发布.
有没有办法让测试运行器更频繁地释放内存?我们谈论的是755项似乎并不过分的测试.我认为这个问题与使用Rhino.mocks以及在此测试集合中创建的所有模拟存储库分配有关.
注意:使用Resharper 5.1,Rhino.Mocks,VS2010和NUnit 2.4.8
谢谢John Schank
假设我有以下代码:
#!/usr/bin/env ruby -wKU
h = {}
h[[1, "a"]] = "first"
h[[2, "b"]] = "second"
puts h.to_yaml
# case 1 - works fine
h.each do |k, v|
num, char = k
puts "key = #{[num, char]}; value = #{v}"
end
# case 2 - works fine
h.each_key do | num, char |
puts "key = #{[num, char]}; value = #{h[[num, char]]}"
end
# case 3 - Doesn't work
# how can I get all three values in one go?
h.each …Run Code Online (Sandbox Code Playgroud) 我使用ansible来提供wordpress安装,为此我有一个wp-config.php的模板.
我的wp-config.php.j2模板替换了键和盐,它看起来像这样
{{ wordpress_keys.content }}
Run Code Online (Sandbox Code Playgroud)
wordpress_keys来自一个任务,如下所示:
- name: retrieve new wordpress keys and salts
uri:
url: "https://api.wordpress.org/secret-key/1.1/salt/"
method: GET
return_content: yes
register: wordpress_keys
Run Code Online (Sandbox Code Playgroud)
问题是,有时键和盐在其中有"特殊"字符,如<>,{}等,这似乎导致ansible产生如下错误:
致命:[ddc-wpchange2.ddc.prod] => {'msg':"AnsibleError:模板定义失败('AUTH_KEY',
'1 = MFI*+!d ^ 1/y;} za6 $ Qf w4vo {bv !gV?lmX?^ P h/5L?szDv&V <~in + .~ ^ oOdCFpyt] Tu8FSmGE} @ ||,Pe(:( 1%CjjAwhq {Gi#j-'); \ndefine('LOGGED_IN_KEY',
' BJ6c9#/ XDBVDB-8Q + ctK9DLZiKUzPYbM&aMlO!.v7COPb8 = [9HdU&Y7%SzE {&xh'); \ndefine('NONCE_KEY','.xB:3|/#|^2*JMh6+t$Ek:DG+wEqyO4:QZmMo}g|MeZi~LrvNpJ-z(8/S ,P.,N');\ndefine('AUTH_SALT', '-pzZ6 l40^8++a@t_sldj_CK {{V%] u-#cK44dAig%v <'); \ndefine( 'SECURE_AUTH_SALT','?ONdE { - {6CQT_Jrn0N4xHhI |} Rz2y1cc9Cj22XO kITU |)BJm@BgPd5.lPW-?e;'); \ndefine('LOGGED_IN_SALT','O_Q7} Q.fx,Gt#0m30 - …