运维
Tcpdump抓包工具
tshark抓包工具
Ansible
Ansible配置
Ansible-远程命令模块( command / script / shell )
Ansible-常用模块
PlayBook
PlayBook-变量
PlayBook-条件/循环
PlayBook-Tags
PlayBook-常用脚本
Ansible-Vault(数据安全)
Ansible-API
Ansible实践
JMeter测试软件
JMeter性能指标
Curl
综合分析工具
磁盘/IO工具
网络分析工具
JAVA分析工具
更换硬盘
Linux启动流程
安装问题
GURB加密
修改默认启动项
Root密码忘记
重装内核、GRUB
Too many open files错误
误删文件,内存恢复
Read-only file system错误
本文档使用MrDoc发布
返回首页
-
+
Ansible配置
2020年2月14日 16:51
admin
#ansible.cfg配置 vim /etc/ansible/ansible.cfg inventory = /etc/ansible/hosts #host文件路径 forks = 5 #指定ansible最多多少进程同时工作 timeout = 10 连接超时时间 nocolor = 0 #显示是否带颜色,默认0为带,1为不带 private_key_file = /path/file.pem #表示在使用SSH公钥私钥登陆系统的时候,密钥文件的路径 library = /usr/share/my_modules/ #extra模块放置路径 remote_tmp = $HOME/.ansible/tmp #远程主机的临时文件存放路径 local_tmp = $HOME/.ansible/tmp #管理主机的临时文件存放路径 |参数|说明 |--|-- |inventory|该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 inventory = /root/ansible/hosts |library|Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 library = /usr/share/ansible |forks|设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 forks = 5 |sudo_user|这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 sudo_user = root //注意:新版本已经作了修改,如ansible2.4.1下已经为: default_sudo_user = root |remote_port|这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 remote_port = 22 |host_key_checking|这是设置是否检查SSH主机的密钥。可以设置为True或False host_key_checking = False |timeout|这是设置SSH连接的超时间隔,单位是秒。 timeout = 20 |log_path|Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 log_path = /var/log/ansible.log 另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的 |private_key_file|在使用ssh公钥私钥登录系统时候,使用的密钥路径。 private_key_file=/path/to/file.pem |host_key_checking = False|设置False,可直接在host配置文件中配置连接参数 --- ##ansible配置文件优先级 ####优先级从上到下,最上的优先级最高 ANSIBLE_CONFIG (环境参数) ansible.cfg (当前目录的ansible.cfg) .ansible.cfg (当前用户家目录下的.ansible.cfg) /etc/ansible/ansible.cfg --- #指定文件清单文件 ####默认:/etc/ansible/hosts --- ####利用参数 ansible-playbook -i host2 site.yml 或 ansible-playbook --inventory-file host2 site.yml --- #host配置 vim /etc/ansible/hosts --- ##单条指定 [WebServer] # 定义分组 www.abc.com 192.168.1.20 192.168.1.30 [DBServer] # 定义多个分组 www.abc.com 192.168.1.60 --- ##范围指定 [webservers] www[01:50].example.com [dbservers] db-[a:f].example.com 172.16.16.[1-255] --- ##添加参数 www.abc.com ansible_ssh_user=root ansible_ssh_pass='123456' 192.168.1.20 ansible_ssh_user=root ansible_ssh_pass='123456' ansible_ssh_port=22022 ####变量参数: # ansible_ssh_host 连接目标主机的地址 # ansible_ssh_port 连接目标主机的端口,默认 22 时无需指定 # ansible_ssh_user 连接目标主机默认用户 # ansible_ssh_pass 连接目标主机默认用户密码 # ansible_ssh_connection 目标主机连接类型,可以是 local 、ssh 或 paramiko # ansible_ssh_private_key_file 连接目标主机的 ssh 私钥 # ansible_*_interpreter 指定采用非 Python 的其他脚本语言,如 Ruby 、Perl 或其他类似 ansible_python_interpreter 解释器 --- ##继承 #####即weball组中,包含了web1与web2组中的主机,如果包含组中存在重复主机,会去重(重要) ####主机组继承 [web1] 192.168.1.10 192.168.1.11 [web2] 192.168.1.10 192.168.1.12 [weball] web1 web2 ####变量继承 #####即web组中的主机都带上http_port=80这个变量,如果web中已指定,并不会覆盖变量,仍是所指定的那个变量值 [web] 192.168.1.10 192.168.1.11 [web:vars] http_port=80 --- #目录结构存放变量 ####假设主机清单文件为/etc/ansible/hosts,那么相关的Host和Group变量可以放在/etc/ansible/host_vars/和/etc/ansible/group_vars/下的主机同名目录中的文件 --- ####单示例 #/etc/ansible/host_vars/10.188.100.55文件内容: http_port: 8080 相当于hosts直接参数 10.188.100.55 http_port=8080 ####分组 #/etc/ansible/group_vars/web文件内容: http_port: 8080 相当于hosts直接参数 [web] 10.188.100.55 10.188.100.56 [web:vars] http_port=8080
分享到: