我有一个巨大的剧本,里面有多个剧本。它看起来像这样:
cat global_playbook.yml
---
- hosts: server150
tasks:
- include_tasks: folder/playbook1.yml
vars:
...
- include_tasks: folder/playbook2.yml # I'm trying to start from here.
vars:
...
tags: test
- include_tasks: folder/playbook3.yml
vars:
...
... and so on
有时,当我运行它时,它会失败。我似乎无法从一个特定的位置开始。
我正在尝试从文件夹/playbook2.yml
开始。我尝试做:
ansible-playbook global_playbook.yml -start-at-task="folder/playbook2.yml"
ansible-playbook global_playbook.yml -start-at-task="**task within playbook2**"
ansible-playbook global_playbook.yml --tags="test"
但没有任何工作。
--step
,所以它会问我运行哪个任务,但它只是运行了太多的剧本。更不用说,因为我正在使用include_tasks
,它不会告诉我什么任务,只有在我同意之后!当使用调用其他行动手册的行动手册时,是否可以让它从特定的点开始?还是让它从失败地方继续下去?
前面谢谢!
这完全取决于你为什么要使用几个剧本。现在,我建议您考虑使用角色的可能性。但您可以将变量存储在文件中,并使用-e
选项将其传递给Ansible,如下所示:
ansible-playbook -i hosts --limit server150 -e @my-var-file.yml folder/playbook2.yml
另一种选择是使用host_vars
目录,因此变量属于该特定主机。
在我看来,当我们在同一本剧本中拥有松散耦合的任务时,标签是一种方便的资源。例如:我们有一个剧本,实现了MySQL数据库和SMB / CIFS服务器来存储和共享其备份文件。因此,您只能运行这些行动手册中的每一个部分。
第一次使用cron作业,我在linux上相对较新,我似乎无法让它工作,如果我只是在命令行中手动运行它,它工作得很好,但不是作为cron作业。 我是这样设置的: 合同-e 插入模式 */3****root(cd/home/ec2 user/;java-jar-feedPuller-1.jar)(每3分钟测试一次) 保存并退出 它说它已经创建了一个新的cron作业选项卡 现在,当我做crontab-l
我的GitLab管道在每次推送时自动执行,我想手动运行管道,而不是每次推送。 管道文件:https://docs.gitlab.com/ee/ci/yaml/#workflowrules 我试过这个。gitlab ci。yml
我想使用maven命令从命令行运行一个特定的测试套件。我使用的是TestNg框架。 我的pom有以下配置设置: 在我正在运行的命令行上:
我有一个特殊的情况。基本上我有一个单元测试,用@Test注释,在这个测试中我需要执行一个Cucumber JVM测试类。 为什么?说来话长。与类加载器和RoboGuice有关,这不是很重要,但它确实限制了我能做什么和不能做什么。 以下是测试方法: MyCucumberTest是我创建的一个类,并注释如下: 为什么我要注释掉@RunBy注释?因为如果我不这样做,Cucumber测试运行程序会拿起测试
我正在通过Maven运行测试用例。使用以下命令: 获取成功: 获取失败: 类名为LoginTest 堆栈跟踪: [错误]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.12.4:project Web上的test(default-test):未执行任何测试!(设置-DFAILIFNOTESTS=FALSE忽略此错误。)->[帮助1]or
问题内容: Windows上是否可以使用位于特定文件夹中的JRE运行JAR文件?类似于Eclipse在您给它的某些路径中寻找其JRE的方式。一些Windows可执行代码(C或C ++)或批处理文件都可以完成这项工作。谢谢! 问题答案: JRE目录具有bin / java.exe。 您只需使用以下命令即可从该JRE运行jar 如果您不想每次都打开控制台,只需将上面的行放在.bat文件中,然后双击。