ansible - 成为具有与主机信息关联的密码的 sudoer 用户
问题描述
我需要访问一些使用服务器主机名构建密码的服务器,因此,假设主机名是:fancyHost,密码前缀是“principio”,那么 sudoer 用户(本例中为 contoso-r)的密码将是:“原则主机”。这是为了给每个主机分配一个新密码。
问题是我设法将自定义密码连接并稳定为变量,并扩展到 sudoer,但似乎 ansible become_pass 并不意味着在任务内部进行操作,这使得将前缀与主机名连接起来很困难。
- hosts: test
vars:
prefix: "principio"
ansible_become_pass: “hardToGuessPassword123”
tasks:
- name: getting current server hostname
command: hostname
register: hostname
- name: getting current user name
command: whoami
register: current_username
- name: print current server hostname
debug:
msg: "Current user: {{current_username.stdout}} ||| Hostname is: {{ hostname.stdout}} ||| Password should be: {{ prefix + hostname.stdout}}"
- name: changing contoso-r' s password
become: True
become_user: contoso-r
become_method: su
user:
name: contoso-r
password: "{{ (prefix + hostname.stdout) | password_hash('sha512') }}"
state: present
shell: /bin/bash
system: no
createhome: no
如何设置相对于每个主机的自定义密码而不是全局 become_pass 或 ansible_become_pass?
谢谢你的时间
解决方案
你说:
我设法连接......并升级到sudoer,......
“更改 contoso-r 的密码”时不必“成为用户:contoso-r ”。
- name: changing contoso-r' s password
user:
name: contoso-r
password: "{{ (prefix + hostname.stdout) | password_hash('sha512') }}"
推荐阅读
- c# - 对齐多个图表
- prometheus - 具有“probe_http_status_code”指标值的 Blackbox Exporter 警报
- java - java中的String[] S,在其中添加值,现在再创建2个数组,even[]应包含具有偶数索引号的值S[]和具有奇数索引号的odd[]
- javascript - webpack 构建后,bundle.js 中未定义导出的函数
- apache-spark - 来自另一个表的分区列上的 Spark 条件(性能)
- java - 为什么我的 switch 语句在 GUI Netbeans 中不起作用?
- wpf - WPF WindowChrome 不需要的黑色阴影 - 由 SizeToContent="WidthAndHeight" 引起
- java - M:N 表不更新
- julia - 以不同的顺序加载 Flux 和 CuArray 会导致错误
- mysql - 如何在另一个 Select 语句中使用一个 select 语句的输出?