我正在尝试使用jenkins管道的构建方法执行已定义的作业.这是一个简单的例子:
build('jenkins-test-project-build', param1 : 'some-value')
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行它时,我收到一个错误:
java.lang.IllegalArgumentException: Expected named arguments but got [{param1=some-value}, jenkins-test-project-build]
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:442)
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:380)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:156)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)
...............
Run Code Online (Sandbox Code Playgroud) 我正在为我的网络服务器构建一个结构.我在hiera有我的设置,但我似乎无法让傀儡回馈正确的类型.
在common.yaml
vhosts:
hostname:
sitename:
app_url: value
app_type: value
Run Code Online (Sandbox Code Playgroud)
我有每个vhost多个站点和多个虚拟主机.在我的清单中,我将创建文件夹结构和其他设置任务,但是现在我甚至无法让它迭代网站.
目前的清单:
define application($app_name, $app_url) {
notice("App Type: ${app_type}")
notice("App Url: ${app_url}")
}
$vhosts = hiera('vhosts')
$vhosts.each |$vhost| {
create_resources(application, $vhost)
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是create_resources需要哈希.但是,如果我输入演员,$vhost我知道它不是哈希而是元组.
我怎么从我的yaml哈希中得到一个元组?有没有更好的方法来迭代这个数据集来获得我需要的东西?
给定的是 hieradata 中的散列值:
profile::jdbc::connections
connection_name1:
username: 'user1'
password: 'pass1'
connection_name2:
username: 'user2'
password: 'pass2'
Run Code Online (Sandbox Code Playgroud)
以及 puppet 代码中的默认值散列:
$jdbc_default = {
'testWhileIdle' => true,
'testOnBorrow' => true,
'testOnReturn' => false,
'timeBetweenEvictionRunsMillis'=> '30000',
'maxActive' => '20',
'maxWait' => '10000',
'initialSize' => '5',
'removeAbandonedTimeout' => '600',
'removeAbandoned' => false,
'logAbandoned' => true,
'minEvictableIdleTimeMillis' => '30001',
}
Run Code Online (Sandbox Code Playgroud)
如何将默认值添加到连接哈希中的每个哈希?
结果也可以是一个散列数组,但是一个与连接散列中的键相同的散列会很好。
我正在使用Puppet进行我的Vagrant配置.我使用https://forge.puppet.com/puppet/archive/types上的归档模块来下载和提取这样的glassfish:
archive { '/tmp/glassfish-4.1.1.zip':
ensure => present,
extract => true,
extract_path => '/opt/',
source => 'http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip',
cleanup => true,
creates => '/opt/glassfish4',
}
Run Code Online (Sandbox Code Playgroud)
应用该资源后,我想将文件移动到新创建的glassfish目录中
file { 'domain.xml':
ensure => file,
path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml',
source => 'puppet:///modules/glassfish/domain.xml',
}
Run Code Online (Sandbox Code Playgroud)
我想在文件移动资源中要求提取已经完成,因为提取不是创建文件,而是创建目录.就像是
require => FILE['..']
Run Code Online (Sandbox Code Playgroud)
不管用.
我想使用 puppet 在文件中放置一些值,但是当我在 ruby 模板中执行以下操作时:
<% @_zoo_cfgs.each do |zooconfig| -%>
<%=zooconfig -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
我在生成的文件中得到以下内容:
server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(trailing whitespace)
Run Code Online (Sandbox Code Playgroud)
但我想要以下内容:
server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(no trailing whitespace)
Run Code Online (Sandbox Code Playgroud)
在值之前或之后的文件中没有额外的空格。任何人都可以让我知道如何做到这一点?
我想要这样的东西:
$ssl_domains = ['dev.mydomain.com']
['admin', 'api', 'web'].each |$site| {
['tom', 'jeff', 'harry'].each |$developer| {
$ssl_domains << "$site.$developer.dev.mydomain.com"
}
}
letsencrypt::certonly { 'dev-cert':
domains => $ssl_domains,
plugin => 'apache',
manage_cron => true,
}
Run Code Online (Sandbox Code Playgroud)
现在因为Puppet的变量范围而不可能.如何通过嵌套循环收集数组中的某些变量?
我有一个代理/主设置。我创建了一个新的环境,/etc/puppetlabs/code/environments/所谓master。
的内容environment.conf为master目录环境
modulepath = site:modules:$basemodulepath
manifest = manifests/site.pp
Run Code Online (Sandbox Code Playgroud)
当我尝试puppet agent -t --environment master时出现一些错误
Notice: Local environment: 'master' doesn't match server specified node environment 'production', switching agent to 'production'.
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for node1.localpuppet.com
Info: Applying configuration version '1490712072'
Notice: Applied catalog in 0.67 seconds
Run Code Online (Sandbox Code Playgroud)
我是木偶新手。我需要什么改变?
我是 puppet 的新手,并计划在我们的环境中实施它。
我有在不同版本的 Redhat 上运行的傀儡代理。
现在,我打算从 puppet master 推送 repo 文件,我需要你的指导来实现它。
我有以下清单。
file { 'local_repo':
ensure => file,
path => '/etc/yum.repos.d/local.repo',
mode => "600",
source => 'puppet:///modules/repo/rhel7.1',
}
file { 'local_repo':
ensure => file,
path => '/etc/yum.repos.d/local.repo',
mode => "600",
source => 'puppet:///modules/repo/rhel6.7',
}
Run Code Online (Sandbox Code Playgroud)
当我执行 Factor CLI 时,我得到以下输出。
[root@dheera ~]# facter os
{
architecture => "x86_64",
family => "RedHat",
hardware => "x86_64",
name => "RedHat",
release => {
full => "7.2",
major => "7",
minor => "2"
}
} …Run Code Online (Sandbox Code Playgroud) 我想使用 Terraform 创建一个 AWS 实例并在其中运行 Puppet 模块。我已经尝试了 github 上的许多模块,但似乎没有任何效果。有人试过这个吗?
我想用 pyyaml 解析与 puppet 相关的 yaml 配置。不幸的是,由于这部分,pyyaml 似乎无法解析某些 YAML 文件:
base::files:
/var/log/fpm:
ensure: 'directory'
mode: '777'
/etc/nginx/ssl/cert:
ensure: 'directory'
/apps:
ensure: 'directory'
owner: user
group: user
['/apps/ecert-public', '/apps/ecert-public/config', '/apps/ecert-public/releases']:
ensure: 'directory'
owner: 'user'
group: 'user'
['/apps/site-public', '/apps/site-public/config', '/apps/site-public/releases']:
ensure: 'directory'
owner: 'user'
group: 'user'
Run Code Online (Sandbox Code Playgroud)
问题是具有多个值的映射(在方括号内)。尝试使用 pyyaml 解析此部分时收到以下错误消息:
在“/hieradata/node/wc-de.yaml”第 133 行第 3 列中构建映射时,在“/hieradata/node/wc-de.yaml”第 212 行第 3 列中发现不可哈希键
一些 YAML 验证器说这是有效的 YAML(例如:http : //www.yamllint.com/),但我尝试过的大多数验证器在解析这部分时也有问题。有谁知道我如何用 pyyaml 解决这个问题?不幸的是我不能改变 YAML 本身,所以我需要一个解决方案来解析它是如何的。
我知道我可以有一个关于 jenkins 管道(声明性)的环境部分。像这样:
stage('Name') {
environment {
NAME = value
}
steps {
script {
Do something using these env vars
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想编写一个 groovy 函数,定义一些环境变量,运行一些东西,并从几个管道中调用它。就像是:
def function () {
environment {
NAME = value
}
sh "do something using these env vars"
}
Run Code Online (Sandbox Code Playgroud)
有可能吗?
(我知道我可以写,sh "ENV=value; some CMD"但我的变量很少,而且可读性较差)。
我是Puppet的新手,但很清楚这些概念.Puppet Manifests调用Puppet Modules,模块执行实际任务.
我试图了解Puppet模块层发生了什么.命令如何实际执行?以下面的例子为例,哪些命令实际传递给操作系统?此外,定义在哪里?
package { 'ntp':
ensure => installed,
}