我想写一个ansible playbook,我们可以提供用户名,ansible将显示该用户的授权密钥。授权密钥的路径是{{user_home_dir}} / .ssh / authorized_keys。
我尝试使用下面的shell模块:
---
- name: Get authorized_keys
shell: cat "{{ user_home_dir }}"/.ssh/authorized_keys
register: read_key
- name: Prints out authorized_key
debug: var=read_key.stdout_lines
问题是,它会显示/home/ansible/.ssh/authorized_keys中的文件。 “ansible”是我用来连接远程机器的用户。
以下是vars / main.yml
---
authorized_user: username
user_home_dir: "{{ lookup('env','HOME') }}"
有什么想法吗?仅供参考我是ansible的新手并且已经尝试了link。
答案 0 :(得分:0)
在您的vars文件中,您有
user_home_dir: "{{ lookup('env','HOME') }}"
感谢Konstantin指出...所有查找都在控制主机上执行。因此,对env HOME的查找将始终解析为用户的主目录,从该目录调用ansible。
您可以使用ansible的getent模块来检索用户的信息。以下代码段应该有帮助
---
- hosts: localhost
connection: local
remote_user: myuser
gather_facts: no
vars:
username: myuser
tasks:
- name: get user info
getent:
database: passwd
key: "{{ username }}"
register: info
- shell: "echo {{ getent_passwd[username][4] }}"
答案 1 :(得分:0)
以下工作。我们需要成为否则我们将获得权限被拒绝错误。
// option one (imports)
import image1 from './path/to/image/relative/to/COMPONENT';
<img src={image1} />
// option two (relative paths inline)
<img src="path/to/image/relative/to/HTML" />