ansible-playbook 配置 hosts 后可以指定变量,通过-k 可以交互输入密码,也可以将密码写在 hosts 文件中。
入口 yaml 文件中通过 {{ ** }} 获取变量,命令行通过 -i 指定 hosts 文件, -e 传入参数,如果同时传入多个 host 参数可使用逗号分隔,同时也可以使用 hosts 文件中的变量 ,其中 remote_user: root 可以在 ansiplay-book 命令行中使用 -u root 替代。
[[email protected]_1_162_39 host_vars]# ll total 16 -rw-r--r-- 1 root root 236 May 5 09:25 hosts-rw-r--r-- 1 root root 152 May 5 09:21 test1.yaml -rw-r--r-- 1 root root 146 May 5 09:20 test.playbook [[email protected]_1_162_39 host_vars]# cat hosts [web] 10.1.167.36 [web:vars] ansible_ssh_port=32200 [web1] 10.1.162.18 [web1:vars] ansible_ssh_port=322 [[email protected]_1_162_39 host_vars]# cat test1.yaml --- - hosts: "{{ host }}" gather_facts: false remote_user: root tasks: - shell: uptime register: output - debug: var=output.stdout
[[email protected]_1_162_39 host_vars]# ansible-playbook test1.yaml -i hosts -e host=10.1.162.18 -k SSH password: PLAY [10.1.162.18] ************************************************************* TASK [command] ***************************************************************** changed: [10.1.162.18] TASK [debug] ******************************************************************* ok: [10.1.162.18] => { "output.stdout": " 09:26:36 up 18:05, 7 users, load average: 0.05, 0.10, 0.08" } PLAY RECAP ********************************************************************* 10.1.162.18 : ok=2 changed=1 unreachable=0 failed=0 [[email protected]_1_162_39 host_vars]#
时间: 2024-10-20 02:07:54