使用Rundeckrun创建作业?

1 投票
1 回答
1213 浏览
提问于 2025-04-27 21:38

我想在Rundeck中使用rundeckrun这个Python模块来创建一个任务,我查阅了他们的文档,但没找到相关信息。

有没有其他方法可以在Rundeck中使用rundeckrun来创建任务呢?

谢谢你的关注。

暂无标签

1 个回答

1

最近在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)

然后是任务的创建……

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

撰写回答