在命令行上指定单个主机时如何设置 ssh 或 ansible_user ?
当我指定单个主机时,如下所示:
$ansible-playbook -i "ceph1," jdk.yml
TASK [hadoop : create hadoop group] ********************************************
task path: /playbooks/yarn/roles/hadoop/tasks/install.yml:2
<ceph1> ESTABLISH SSH CONNECTION FOR USER: None
Run Code Online (Sandbox Code Playgroud)
ssh 连接用户和 {{ansible_user}} 都没有,但我已经在 ssh/config 中定义了它
$cat jdk.yml
- hosts: all
vars_files:
- default.yml
roles:
- role: jdk
$cat role/jdk/tasks/main.yml
- name: set java home
lineinfile: dest=/home/{{ ansible_ssh_user }}/.bashrc
line={{ item }}
with_items:
- export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
$cat hosts
ceph1 ansible_user=ubuntu
$cat ~/.ssh/config
Host ceph1
User ubuntu
Run Code Online (Sandbox Code Playgroud)
当然运行下面的就可以了
$ansible-playbook jdk.yml
Run Code Online (Sandbox Code Playgroud)
小智 3
您可以传递 -e 参数:
# ansible -m ping web1 -i inventory/a2 -vvv -e "ansible_user=ceph"
<a2-web1> ESTABLISH SSH CONNECTION FOR USER: ceph
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13715 次 |
| 最近记录: |