ansible 内置参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible 内置参数相关的知识,希望对你有一定的参考价值。
参考技术A inventory内置参数参考解释例子
1)ansible_ssh_host
将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置.
eg: ansible_ssh_host=192.169.1.123
2)ansible_ssh_port
ssh端口号.如果不是默认的端口号,通过此变量设置
eg:ansible_ssh_port=5000
3)ansible_ssh_user 默认的 ssh 用户名
eg:ansible_ssh_user=cxpadmin
4)ansible_ssh_passssh
密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)
eg:ansible_ssh_pass=’123456’
5)ansible_sudo_passsudo
密码(这种方式并不安全,我们强烈建议使用 --ask-sudo-pass)
eg:ansible_sudo_pass=’123456’
6)ansible_sudo_exesudo
命令路径(适用于1.8及以上版本)
eg:ansible_sudo_exe=/usr/bin/sudo
7)ansible_connection
与主机的连接类型.比如:local, ssh 或者 paramiko.
Ansible 1.2 以前默认使用 paramiko.1.2 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断'ssh' 方式是否可行.
eg:ansible_connection=local
8)ansible_ssh_private_key_filessh
使用的私钥文件.适用于有多个密钥,而你不想使用 SSH 代理的情况.
eg:ansible_ssh_private_key_file=/root/key
9)ansible_shell_type
目标系统的shell类型.默认情况下,命令的执行使用 'sh' 语法,可设置为 'csh' 或 'fish'.
eg:ansible_shell_type=zsh
10)ansible_python_interpreter
目标主机的 python 路径.适用于的情况: 系统中有多个 Python, 或者命令路径不是"/usr/bin/python",比如 \*BSD, 或者 /usr/bin/python,
不是 2.X 版本的 Python.我们不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26).
eg:ansible_python_interpreter=/usr/bin/python2.6
11)ansible_*_interpreter
定义其他语言解释器
eg:ansible_*_interpreter=/usr/bin/ruby
12)ansible_sudo
定义sudo用户
eg:ansible_sudo=cxpadmin
注:从ansible2.0开始,
ansible_ssh_user ----------------->ansible_user
ansible_ssh_host ------------------->ansible_host
ansible_ssh_port ------------------> ansible_port
Ansible的参数介绍
安装完成ansible后查看ansible的参数:ansible -h
- ansible 命令格式:Usage: ansible <host-pattern> [options]
ansible的一些参数
-a MODULE_ARGS, #模块参数
-C, --check # 干跑,白跑
-f FORKS, --forks=FORKS #指定并发,默认5个
--list-hosts #列出主机
-m MODULE_NAME# 模块名称
--syntax-check #检查语法
-k #密码
rpm -ql ansible|more # 查看ansible生成的文件
/etc/ansible
/etc/ansible/ansible.cfg #配置文件
/etc/ansible/hosts
/etc/ansible/roles #空文件夹
- hosts文件的配置
打开hosts文件:vi /etc/ansible/hosts
- ansible的ping命令
配置完上面的文件后进行ping命令
第一种方法:ping命令必须有参数-k 然后输入秘钥就能ping通
第二种方法:先生成秘钥,然后将秘钥传给需要ping的主机,完成后就可以直接ping了
- 1. ssh-keygen 用来生成ssh的秘钥和私钥(遇到阻塞,直接回车)
- 2.将公钥传给需要的服务器:ssh-copy-id [email protected]
- 密码为远程主机的密码
- 130主机用ssh直接连接131主机
- ansible的第一个命令--ping
- ansible 192.168.226.101 -m ping #单独机器的ping
- ansible 192.168.226.101,192.168.226.102 -m ping #多个机器的ping,ip之间用逗号隔开
- ansible all -m ping #全部机器
- ansible web -m ping #单个的组
- ansible web,db -m ping #多个组的并集
- ansible ‘web:&db‘ -m ping #多个组的交集
- ansible ‘web:!db‘ -m ping #多个组的差集,在前面但是不在后面
以上是关于ansible 内置参数的主要内容,如果未能解决你的问题,请参考以下文章