一、Ansible目录结构
1、/etc/ansible/ 配置文件目录
功能: Inventory 主机信息配置、ansible工具功能(ansibe.cfg、hosts、roles)
2、/usr/bin 执行文件目录
3、/usr/lib/python/site-packages/ansible/ lib库依赖目录
4、/usr/share/doc/ansible 帮助文档目录
5、/usr/share/man/man1 man文档目录
二、Ansible配置文件解析
[defaults]
inventory = /etc/ansible/hosts 定义Inventory
library = /usr/share/my_modules/ 自家义lib库目录
remote = $HOME/.ansbile/tmp 临时文件远程主机存放目录
local_tmp = $HOME/.ansbile/tmp 临时文件本地存放目录
forks = 5 并发数
sudo_user = root 默认sudo用户
ask_sudo_pass = True 否需要sudo密码
role_path = /etc/ansible/roles 默认下载的Roles存放目录
host_key_checking = False 首次连接是否需要检测查key
timeout = 10 超时时间
log_path 日志路径
module_name = command 执行模块
action_plugins= action插件的存放目录
callback_plugins callback插件的存放目录
connection_plugins connection插件的存放目录
lookup_plugins lookup插件的存放目录
vars_plugins vars插件的存放目录
filter_plugins filter插件的存放目录
strategy_plugins strategy插件的存放目录
fact_caching = memory getfact缓存的主机信息存放方式
retry_files_enabled = False
[privilege_escalation]
become=True 是否sudo
become_method=sudo sudo方式
become_user=root sudo后变为root用户
become_ask_pass=False sudo是否 验证密码
[paramiko_connection]
recore_host_keys=False 不记录新主机的key以提升效率
pty=False
[ssh_connection]
pipelining =False 管道加速功能配合 requiretty使用
[accelerate]
accelerate_port 加速连接端口
accelerate_timeout 命令执行超时时间
accelerate_connection_timeout 连接超时时间
accelerate_daemon_timeout 上一个活动连接时间
accelerate_multi_key = yes
三、ansible命令
-m NAME 指定执行使用模块
-u 远程主机以username运行命令
-s 相当于sudo
-U 使用sudo
例子:
创建 /etc/ansible/hosts
[k8s]
10.18.1.232
10.18.1.233
10.18.1.234
[node1]
10.18.1.232
ansible all -m ping -u root
ansible node1 -m shell -a ifconfig
三、inventory详解
Inventory是ansible管理主机信息配置文件
1、定义主机和组
2、定义主机变量
3、定义组变量
4、定义组嵌套及组变量
5、多重变量定义