Articles of 模板

如何触发Jinja模板中的自定义错误?

虽然Ansible本身有一个触发自定义错误的方法 ,但我找不到Jinja类似的东西。 我目前的方法使用语法错误: {% if 'ansible_mounts' in hostvars[host] %} # {{ host }} knows its mount-points {% else %} # {% error!! No ansible_mounts listed for host – fact-gathering must've failed %} {% endif %} 但是在运行时渲染效果不佳 – 需要查看模板文件并search错误(渲染甚至不包括行号!)。 有没有办法从Jinja模板内输出整齐的失败信息?

使用本地文件作为傀儡模板

我是一个java软件的开发人员,并试图find一个聪明的方式来让我的应用程序在我们的数据中心分布和configuration。 为此,我build立了一个rpm包,并且build立了一个卫星。 目标操作系统是Red Hat Enterprise。 对于configurationpipe理我们使用木偶。 到现在为止,一切运行良好。 我们根据puppet中的节点configuration来设置数据库连接string和主机名。 这些进入erb模板文件,我们也有木偶大师。 但现在,我需要修补一个属于RPM的单个文件。 这是一个在构build时生成的文件,每个构build都会随之更改,所以我们不喜欢把它放到傀儡中。 有一个标识符(自由select,如<%baseURL%>)。 不幸的是,我们需要在这个文件中设置一个基本的URL,这取决于它所在的节点。 我想将我们的文件作为.erb存放在RPM中,但似乎puppet不能使用目标系统的本地文件作为模板,在我看过的所有例子中,模板都位于puppet master上。 另一个问题是,如果程序包被更新或baseUrlconfiguration发生变化,则必须从模板转换为真正的configuration文件。 我想利用这个木偶模板,但我不知道这是否工作。 我目前的解决scheme是:我使用木偶在/ etc / myapp / webstart_baseurl中的每台机器上创build一个依赖于节点的文件。 看起来像: MYAPP_WEBSTART_BASEURL=http\\:\\/\\/10.12.1.42\\/myapp_ws\\/ export MYAPP_WEBSTART_BASEURL 然后,我写了一个shell脚本,包含在我的RPM中。 这放在/usr/bin/patchHostnameForWebstart.sh中 #!/bin/sh #the file where to load the baseUrl from (in property $MYAPP_WEBSTART_BASEURL) MYAPP_WEBSTART_SERVERCONFIG=/etc/myapp/webstart_baseurl MYAPP_JNLP_TOKEN=@@myapp.webstart.baseurl@@ if [ -f $MYAPP_WEBSTART_SERVERCONFIG ] then source $MYAPP_WEBSTART_SERVERCONFIG echo "found config for […]

使用Ansible构build属性文件,如果值不存在,则不应添加属性

我试图build立一个属性文件与强制性和可选属性Ansible与模板。 我希望每个基本上静态的string(每个可选的属性名称)只有在相关的属性值存在时才会显示(来自Ansiblevariables) 现在,我的模板看起来像这样: # Mandatory Properties ManProperty1={{ ManProperty1_value }} ManProperty2={{ ManProperty2_value }} # Optional Properties OptProperty1={{ OptProperty1_value }} OptProperty2={{ OptProperty2_value }} 但是,应用程序本身已经为所有可选属性设置了硬编码值,而且如果存在相关的variables,我只希望将“property = value”行从模板写入到属性文件中。 所以继续上面的模板,如果我设置为环境X(group_vars) ManProperty1_value = myManValue1 ManProperty2_value = myManValue2 OptProperty1_value = myOptValue1 但不要设置 OptProperty2_value 我想要的模板输出到部署的文件是: # Mandatory Properties ManProperty1=myManValue1 ManProperty2=myManValue2 # Optional Properties OptProperty1=myOptValue1 Ansible对此必须有一个更好的解决scheme。 我发现最接近的是有效的过滤,但是我找不到与显示/隐藏模板文本相关的任何内容。 最后说明:我确实有一个黑客式的备份解决scheme – 我取每行property=value ,并使variables等于整个string。 但是,这感觉就像完全没有存储在variables中的静态文本的模板一样。

Ganeti“模板”的操作系统,可能吗?

只要发现ganeti并玩耍, 从我看到它只能通过“去引导”OS的风格来创build实例。 我想知道是否有可能“准备好”模板,如“LAMP”模板或“DNS服务器”模板来创build实例时select。 还没有find太多的文件; 如果有人有一个想法.. 谢谢 !

我如何创build一个服务器模板来产生新的服务器?

我在CodeIgniter PHP框架之上build立了几个LAMP服务器(在VMware ESXi主机上)。 为了模拟原始的dev服务器安装,我通过手动安装Ubuntu Server,然后安装openssh,git,ftp,unzip等软件包,然后实现我的web和文件结构来设置第二和第三台服务器…不用说它耗费时间,单调乏味地需要这样做,我有新的开发服务器build立起来。 有没有办法做一个模板开发服务器或者什么东西,立即产生新的开发服务器上的所有项目上面提到的基于它? 有或没有内置ESXifunction的方法都可以。

Puppet模板和undefined / nilvariables

我经常想在Puppet模板中包含默认值。 我希望给这样一个class: class myclass ($a_variable=undef) { file { '/tmp/myfile': content => template('myclass/myfile.erb'), } } 我可以做一个这样的模板: a_variable = <%= a_variable || "a default value" %> 不幸的是,Puppet中的undef没有在模板的上下文中翻译成Ruby nil值,所以这实际上并不起作用。 在Puppet模板中处理默认值的规范方式是什么? 我可以将默认值设置为空string,然后使用empty? testing… a variable = <%= a_variable.empty? ? "a default value" : a_variable %> 但是,这似乎有点笨重。

厨师 – 多个文件dynamic模板资源

我试图find一种方法来dynamic地应用模板资源在食谱模板文件夹内的文件夹中的所有文件。 就像是: Dir.foreach("../templates/default/shared/") do | file | # This is the wrong line… template "/home/admin/shared/#{file}" do source "shared/#{file}" … end end 我该怎么做? 我试图避免有一个单独的目录中的所有文件列表作为variables…谢谢。

networking事件报告模板

我正在寻找一个networking事件报告模板。 你公司有没有使用模板?

木偶:如何使用Puppet 3.0模板中的MySQL表中的数据?

我有一些数据的真实来源是在MySQL数据库中,数据的大小预计会在几千行的范围内(在最坏的情况下),我想用puppet来configuration文件一些具有这些数据的服务器(大部分是迭代通过模板中的这些行)。 我目前正在使用Puppet 3.0.x,而且我不能改变MySQL将成为这些数据的权威来源的事实。 请注意,数据来自外部,而不是来自木偶或受pipe节点。 那里有什么可能的方法? 你会推荐哪一个? 外部节点分类器在这里有用吗? 我的“最后的手段”是定期将表格转储到YAML文件中,然后通过Hiera读取到Puppet模板,或者直接将表格转储到一个或多个预先格式化的文本文件中以准备复制到节点。 关于系统用户有一个关于SF的未解答的问题,但根本问题可能类似于我 – 他试图从MySQL获取数据。

如何在CloudFormation中连接实例

我们想为AWS中相当标准的堆栈创build一个模板。 我们需要三层。 层:弹性负载平衡器 图层:根据网站需求触发的警报创build/销毁多个networking服务器 图层:数据库服务器 第2层上的实例应该知道数据库实例的主机名。 理想情况下,我想获得数据库实例的私有IP,并通过用户数据传递给Web服务器。 Fn :: GetAtt不支持私有IP(只有公共) 我想一个替代scheme是build立堆栈,然后手动设置数据库私人IP。 它虽然使我们的设置不那么干净。 我们理想地喜欢在模板中描述的一切。 (即使这涉及通过用户数据运行脚本) 有什么build议么?