想要在Rundeck中使用rundeckrun python模块创建作业,我在他们的文档中进行了搜索,但找不到它。

还有其他选择可以在Rundeck中使用rundeckrun创建作业

感谢您的关注。

最佳答案

这是最近在rundeckrun存储库中发布的:#17(可能是您:@Naren)。正如我在有关Github问题的评论中提到的那样,Rundeck API并未提供创建作业的高级方法,因此rundeckrun也不...。 :)但是,Rundeck API确实提供了导入作业定义的方法,而rundeckrun提供了围绕该端点的轻包装器。您可以操纵/创建作业定义并将其导入。实际上,这正是tests/__init__.py设置逻辑中所做的:

test_job_id = uuid.uuid4()
test_job_name = 'TestJobTest'
test_job_proj = 'TestProjectTest'
test_job_def_tmpl = """<joblist>
  <job>
    <id>{0}</id>
    <loglevel>INFO</loglevel>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <node-step-plugin type='localexec'>
          <configuration>
            <entry key='command' value='echo "Hello World! (from:${{option.from}})"' />
          </configuration>
        </node-step-plugin>
      </command>
      <command>
        <node-step-plugin type='localexec'>
          <configuration>
            <entry key='command' value='sleep ${{option.sleep}}' />
          </configuration>
        </node-step-plugin>
      </command>
    </sequence>
    <description></description>
    <name>{1}</name>
    <context>
      <project>{2}</project>
      <options>
        <option name='from' value='Tester' />
        <option name='sleep' value='0' />
      </options>
    </context>
    <uuid>{0}</uuid>
  </job>
</joblist>"""
test_job_def = test_job_def_tmpl.format(test_job_id, test_job_name, test_job_proj)


然后the creation of the job ...

def setup():
    rundeck_api.jobs_import(test_job_def, uuidOption='preserve')

08-28 14:50