【问题标题】:rundeck - api - ansible - uri - Add Key passwd - Value not goodrundeck - api - ansible - uri - 添加密钥 passwd - 值不好
【发布时间】:2022-01-25 20:35:42
【问题描述】:

我尝试添加新的密钥密码,但遇到 API 问题。密钥已成功创建。但是,什么时候使用价值不大。

我尝试使用 Postman 生成密钥,并创建了密钥但值不正确。当我在界面上手动使用相同的值时,它工作正常。

  1. 我之前删除了密钥(手动)
  2. 邮递员:
curl --location --request POST 'https://rundeck.dev.xxxxxx.com/api/11/storage/keys/project_name/gitlab?authtoken=FdMORu02flT2R5zI' \
--header 'Content-type: application/x-rundeck-data-password' \
--header 'Cookie: AWSALB=D6Kpid4U/o7uHy9G0Pg40uvILs1toq367tPzPiCskEha7YGM3eCJldNnKyMFYBrkwOXIyvVmKAsIe9yIRm/8xOX/0mj4LIRy2wMl3qYpOvXKw3x9e+rXnjd8gEjX; AWSALBCORS=D6Kpid4U/o7uHy9G0Pg40uvILs1toq367tPzPiCskEha7YGM3eCJldNnKyMFYBrkwOXIyvVmKAsIe9yIRm/8xOX/0mj4LIRy2wMl3qYpOvXKw3x9e+rXnjd8gEjX' \
--data-raw 'XKmB1wkjsdfikjkHkKwCEW'

我尝试使用生成的密钥添加 SCM,但仍然无法正常工作。但是,当我手动创建具有相同名称和值的密钥时,SCM 导入正在工作。

我在使用 URI 时遇到了同样的错误。

  1. 我之前删除了密钥(手动)
  2. 我创建了一个剧本来访问 rundeck API
    - name: "Create Keys {{ project_name }} - gitlab"
      uri:
        url: "{{ RD_URL }}{{ API_11 }}/storage/keys/{{ project_name }}/gitlab?authtoken={{ RD_TOKEN }}"
        method: POST
        body_format: raw
        validate_certs: no
        status_code: [201, 409]
        return_content: true
        headers:
          Content-Type: application/x-rundeck-data-password
          X-Rundeck-Auth-Token: "{{ RD_TOKEN }}"
        body: '{{ GITLAB_TOKEN }}'

【问题讨论】:

    标签: api curl ansible postman rundeck


    【解决方案1】:

    您可以通过 API 40 和 Rundeck 3.4.9 使用以下调用创建密码:

    #!/bin/sh
    
    # protocol
    protocol="http"
    
    # basic rundeck info
    rdeck_host="localhost"
    rdeck_port="4440"
    rdeck_api="40"
    rdeck_token="hcFPFbJHFIqerwaRsWtuhPnPAIUoY4Kt"
    
    # api call
    curl --location --request POST "$protocol://$rdeck_host:$rdeck_port/api/$rdeck_api/storage/keys/mypass" \
      --header "X-Rundeck-Auth-Token: $rdeck_token" \
      --header "Content-Type: application/x-rundeck-data-password" \
      --data-raw "12345"
    

    另外,我创建了一个 Job 示例来测试密码内容:

    - defaultTab: nodes
      description: ''
      executionEnabled: true
      id: 5658bb13-f9e9-494b-839c-d18f25057a4e
      loglevel: INFO
      name: HelloWorld
      nodeFilterEditable: false
      options:
      - name: opt1
        secure: true
        storagePath: keys/mypass
        valueExposed: true
      plugins:
        ExecutionLifecycle: null
      scheduleEnabled: true
      sequence:
        commands:
        - exec: echo ${option.opt1}
        keepgoing: false
        strategy: node-first
      uuid: 5658bb13-f9e9-494b-839c-d18f25057a4e
    
    

    运行作业,可以看到密码值。

    同样tested 使用 SCM 配置。

    因此,请确保您在 SCM 配置中指向正确的密钥,并确保在您的 API 调用中使用最新的 API 版本(此时为 40)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      相关资源
      最近更新 更多