通过参考文档,Kubernetes/Openshift中的持久量(PV)和持久量声明(PVC)之间有什么区别?
简单来说两者之间有什么区别?
我正在尝试创建一个名为groovy1.txt的文件,其内容为"使用Groovy方式轻松处理文件".
注意:我不想使用shell来创建此文件,而是希望使用Groovy来实现此目的.
我的Jenkins管道中有以下脚本.
node {
def file1 = new File('groovy1.txt')
file1.write 'Working with files the Groovy way is easy.\n'
sh 'ls -l'
// Expecting the file groovy1.txt should present with the content mentioned above
}
Run Code Online (Sandbox Code Playgroud)
但它正在抛出FileNotFound(权限被拒绝)错误,如下所示
java.io.FileNotFoundException: groovy1.txt (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at java.io.FileWriter.<init>(FileWriter.java:90)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.write(ResourceGroovyMethods.java:740)
at org.codehaus.groovy.runtime.dgm$1035.doMethodInvoke(Unknown Source)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:47)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:104)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:3) …Run Code Online (Sandbox Code Playgroud) groovy jenkins jenkins-job-dsl jenkins-groovy jenkins-pipeline
这是我的角色结构:
\n$ tree my_role\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_role\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 defaults\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 files\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo.conf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 handlers\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 meta\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tasks\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tests\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 inventory\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vars\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 playbook.yml\nRun Code Online (Sandbox Code Playgroud)\n我想对位于tasks/main.yml 中的文件文件夹中的文件foo.conf 进行cat。
\n我尝试通过提供相关路径直接在tasks.yml中使用,但是,它说找不到该文件。
\n我有以下 Jenkinsfile,我想在 3 个节点上运行舞台。我根据这个答案使用了 && 运算符。
pipeline{
agent {
label 'webserver && serverex && composeserver'
}
stages{
stage('run this on 3 nodes'){
steps{
script{
sh 'echo $HOSTNAME'
}
}}
}}
Run Code Online (Sandbox Code Playgroud)
但是我遇到了以下错误。
没有标签为“webserver&&serverex&&composeserver”的节点
上面的阶段是一个例子,我在同一个阶段下有多个脚本。
我可以使用并行实现这一点,但它会重复,因为我需要在 3 个节点上运行它。
我可以知道 AND (&&) 运算符有什么问题吗?根据链接中提到的答案,它是否从 Jenkins 中删除,因为它看起来像以前一样工作?
我正在学习Python3,现在正在学习元组章节。
虽然我们可以使用索引方法来打印项目的位置,如下所示:
>>> tup = ('a','b','a','c')
>>> tup.index('c')
>>> 3
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试打印重复项目的索引时,它只打印第一个项目,而忽略第二个项目。
>>> tup.index('a')
0
Run Code Online (Sandbox Code Playgroud)
我期望元组打印两个索引(位置)。
预期产出
>>> tup.index('a')
0, 2
Run Code Online (Sandbox Code Playgroud)
我可以知道为什么元组有这种行为吗?如果我们想打印元组中重复项的索引怎么办?
groovy ×2
jenkins ×2
ansible ×1
kubernetes ×1
openshift ×1
python ×1
python-3.x ×1
storage ×1
tuples ×1