ansible - 如何更轻松地将所有任务委派到 Ansible 中的某个角色中?
问题描述
我对 Ansible 还有些陌生,所以我确信这不是正确的做法,但考虑到我的要求,这是我想出的。
我必须在服务器上执行任务,我没有凭据可以访问,因为它们被锁定在保险库中。我解决此问题的方法是从保管库获取凭据,然后将任务委派给该服务器。我已经完成了这一点,但我想知道是否有更清洁或更充分的方式来做到这一点。所以,这是我的设置:
我有一本剧本,里面只有:
---
- hosts: localhost
roles:
- role: get_credentials <-- Not the real role names
- role: use_credentials
基本上,get_credentials 从保管库中获取一些凭据,然后 use_credentials 执行任务,但每个任务都有
delegate_to: protected_server
vars:
ansible_ssh_user: "{{ user }}"
ansible_ssh_pass: "{{ password }}"
最后
有没有办法可以委派 use_credentials 中的所有任务,而不必单独委派每个任务?
解决方案
我roles:
会tasks:
使用include_role
. 像这样的东西:
tasks:
- name: Get credentials
include_role:
name: get_credentials # I expect this one to set_fact user_from_get_credential and password_from_get_credential
delegate_to: protected_server
- name: Use credentials
include_role:
name: use_credentials
vars:
ansible_ssh_user: "{{ user_from_get_credential }}"
ansible_ssh_pass: "{{ password_from_get_credential }}"
推荐阅读
- drupal - drupal8:如何安装模块?
- react-native - 如何在 React Navigation V5 中为每次启动启动启动画面?
- excel - 格式化单元格以根据行号引用另一个工作表
- angular - 当 auth Guard 发送用户登录或注册时,Angular 9 和 Ionic 重定向到上一页
- django - Django 3 设置 django_language cookie
- laravel - laravel 表单搜索数据库中不可用的数据
- android - 如何以编程方式为工具栏内的所有图标设置 colorControlHighlight (波纹颜色)?
- python - Python:解析连接的 JSON
- java - Google App Engine MemcacheService.delete(key, millisNoReAdd) 并不总是支持并发推杆
- machine-learning - LSTM 中的 NumHiddenUnits