首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换为角色

转换为角色
EN

Stack Overflow用户
提问于 2019-11-07 08:54:33
回答 1查看 82关注 0票数 0

这是我写的剧本的一部分。但是想要实现角色而不是使用Api‘,在这里您可以看到有超过2个Api,而我在脚本中也没有更多的Api。您能给出任何想法将其转换为roles.How以将其修改为角色吗

代码语言:javascript
复制
- name: Get df 
  uri:
    url: "{{ci}}"
    method: GET
    user: '{{ lookup("env", "@@@@@@") }}'
    password: '{{ lookup("env", "@@@@@@") }}'
    HEADER:
    Content-Type: application/json
    #body: "{{req_body|to_json}}"
    force_basic_auth: true
    status_code: 200,400,401
    timeout: 15
    validate_certs: false
    body_format: json
  delegate_to: ########
  register: df_response
- set_fact:
    df_response: "{{df_response}}"
    df: "{{df_response.json.result[0].comments}}"
  when: df_response.status == 200

- name: Get GroupName based on CI Name
  uri:
    url: "{{getgroup}}={{ BotCI_name}}"
    method: GET
    user: "{{!!!!!!!}}"
    password: "{{######}}"
    headers:
      #Authorization: "{{token}}"
      Content-Type: application/json
    #body: "{{BotCI_name/json}}"
    force_basic_auth: true
    status_code: 200,400,401,404
    timeout: 60
    validate_certs: false
    body_format: json
  register: inventorygroup

- name: Get HostName based Group Name
  # Get this from Ansible Tower
  uri:
    url: "{{^^^^^}}{{inventorygroup_hostresponse}}"
    method: GET
    user: "{{$$$$$$$$$$}}"
    password: "{{%%%%%%%%%%%}}"
    headers:
      #Authorization: "{{token}}"
      Content-Type: application/json
    #body: "{{/json}}"
    force_basic_auth: true
    status_code: 200, 400, 401,404
    timeout: 15
    validate_certs: false
    body_format: json
  register: hostname
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-07 09:23:14

(未测试)创建具有以下内容的文件<main folder>/roles/gen_token/tasks/main.yml

代码语言:javascript
复制
---
- name: Generate Token to run API calls to Ansible
  uri:
    url: {{url}}
    method: POST
    user: '******'
    password: 'aa********'
    HEADER:
    Content-Type: application/json
    #body: "{{req_body|to_json}}"
    force_basic_auth: true
    status_code: 200,400,401
    timeout: 15
    validate_certs: false
    body_format: json
  delegate_to: per0dans01
  register: yutoken
- set_fact:
    t_token_response: "{{yutoken.token}}"
  when: yutoken.status == 200

- debug:
    msg: "Token printed: {{yutoken}}"

然后调用主剧本<main folder>/main.yml中的角色

代码语言:javascript
复制
---
- hosts: all
  roles:
  - { role: gen_token, url: "http://1.1.0.1/api/v2/user/******/personal_token*/" }
  - { role: gen_token, url: "http:another/url/personal_token*/" 

代码语言:javascript
复制
---

- hosts: all
  tasks:
  - include_role:
       name: gen_token
    vars:
      url: 'url1'
  - include_role:
       name: gen_token
    vars:
      url: 'url2'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58745068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档