查看“Ansible配置”的源代码
←
Ansible配置
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==概述== ansible主要有两个文件: ansible.cfg 和 inventory文件 Ansible.cfg是ansible自动化任务所用的一个核心配置文件, Ansible可同时操作属于一个组的多台主机,是通过inventory文件配置来实现的, ==配置文件ansible.cfg== ===文件位置=== 1./etc/ansible/ansible.cfg 2.~/.ansible.cfg 3.当前目录下的ansible.cfg(常用) 在大多数场景下默认的配置就能满足大多数用户的需求。在一些特殊场景下,用户还需要自行修改这些配置文件,安装后如果没有在上述三个位置找到配置文件,那么在HOME目录新建一个.ansible.cfg文件即可。 ===查看配置文件=== 从下面文件的输出中可以看到配置文件的位置。 [root@localhost ansible]# ansible --version <nowiki>ansible 2.10.5 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/Python3/lib/python3.7/site-packages/ansible executable location = /usr/local/Python3/bin/ansible python version = 3.7.5 (default, Feb 12 2021, 16:30:52) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]</nowiki> ===常见的配置参数=== Ansible常见的配置参数如下。 *inventory = ~/ansible_hosts:表示主机清单inventory文件的位置。 *forks = 5:并发连接数,默认为5。 *sudo_user = root:设置默认执行命令的用户。 *remote_port = 22:指定连接被管节点的管理端口,默认为22端口。建议修改,能够更加安全。 *host_key_checking = False:设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例。 *timeout = 60:设置SSH连接的超时时间,单位为秒。 *log_path = /var/log/ansible.log:指定一个存储Ansible日志的文件(默认不记录日志)。 其中参数的取值范围及更加详细的配置请参考官方文档:https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg。 ===典型配置=== <nowiki>[defaults]设置 #inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 #remote_user= root 在受管主机上登录用户,未指定则使用当前用户 #ask_pass= True 是否需要用户输入连接密码,如果使用公钥验证,需要设置为false [privilege_escalation] 设置 #become=True # 是否sudo #become_method=sudo # sudo方式 #become_user=root # sudo后变为root用户 #become_ask_pass=False # sodu后是否验证密码</nowiki> ===配置实例=== vi ~/ansible.cfg <nowiki>[defaults] inventory = ~/ansible_hosts host_key_checking = False</nowiki> ==主机清单(inventory)== Ansible可同时操作属于一个组的多台主机,是通过inventory文件配置来实现的, 组与主机的关系也是由inventory来定义的。 主机可以从属于组,后者通常用于标识主机的角色。一个主机可以属于多个组 ===编写静态清单=== 可以通过两种方式定义主机清单:通过文本文件定义静态主机清单,或从外部 provider 生成动态主机清单。 默认inventory文件路径为/etc/ansible/hosts,我们也可以通过Ansible的配置文件来指定inventory文件位置。除默认文件外,可以同时使用多个inventory文件,也可以从动态源或云上拉取inventory配置信息。 ====简单设置==== 一个简单的inventory文件示例如下。 <nowiki>192.168.0.1</nowiki> ====分组设置==== 一个对主机进行分组的inventory文件: <nowiki>mail.example.com [webservers] foo.example.com bar.example.com [dbservers] one.example.com two.example.com three.example.com</nowiki> 其中方括号[]中是组名,用于对系统进行分类,便于对不同系统进行个别的管理。一个系统可以属于不同的组,比如一台服务器可以同时属于webserver组和dbserver组。这时属于两个组的变量都可以为这台主机所用。 分配变量给主机很容易做到,这些变量定义后可在playbooks中使用。 <nowiki>[atlanta] host1 http_port=80 maxRequestsPerChild=808 host2 http_port=303 maxRequestsPerChild=909</nowiki> 组的变量也可以定义属于整个组的变量。 <nowiki> [atlanta] host1 host2 [atlanta:vars] ntp_server =ntp.atlanta.example.com proxy=proxy.atlanta.example.com</nowiki> ====指定连接和用户名==== 对于每一个host,还可以选择连接类型和连接用户名。 <nowiki>localhost ansible_connection=local other1.example.com ansible_connection=ssh ansible_ssh_user=pdchaan</nowiki> 多个主机组也可构成组,通过 :children 后缀来实现* 可以指定主机名称或 IP 地址的范围来简化 Ansible 主机清单。可以指定数字范围和字母范围。范围具有下列语法: <nowiki>[START:END] 192.168.[4:7].[0:255] - 网段中的所有 IP 地址(192.168.4.0 到192.168.7.255) server[01:20].example.com - 名称为 server01.example.com 到server20.example.com 的所有主机 </nowiki> ===主机清单示例=== [root@localhost ~]# mkdir /etc/ansible [root@localhost ~]# cd /etc/ansible [root@localhost ansible]# vi hosts <nowiki> [master] localhost ansible_connection=local ansible_ssh_user=root 10.0.0.30 ansible_ssh_user=root [slave] 10.0.0.32 ansible_ssh_user=root </nowiki> 有可能每台机器登录的用户名都不一样,这里指定每台机器连接的SSH登录用户名,在执行Ansible命令时就不需要再指定用户名。如果不指定用户名,Ansible就会尝试使用本机已登录的用户名登录远程主机。 ===使用动态清单=== Ansible inventory 内容可以动态生成 动态清单信息的来源包括公共/私有云提供商、Cobbler 系统信息和 LDAP 数据库,或者配置管理数据库 (CMDB) Ansible 含有处理来自最常见提供商的动态主机、组和变量信息的脚本,如 Amazon EC2、Cobbler、Rackspace Cloud 和OpenStack 等提供商 对于云提供商,必须在脚本能够访问的文件中定义身份验证和访问权限信息 ==配置实例== ===ansible.cfg=== vi ~/ansible.cfg <nowiki>[defaults] inventory = ~/ansible_hosts host_key_checking = False</nowiki> ===inventory文件=== [root@localhost ~]# mkdir /etc/ansible [root@localhost ~]# cd /etc/ansible [root@localhost ansible]# vi ansible_hosts <nowiki> [master] localhost ansible_connection=local ansible_ssh_user=root 10.0.0.30 ansible_ssh_user=root [slave] 10.0.0.32 ansible_ssh_user=root 王忠坤大帅哥 俺也一样 </nowiki> 有可能每台机器登录的用户名都不一样,这里指定每台机器连接的SSH登录用户名,在执行Ansible命令时就不需要再指定用户名。如果不指定用户名,Ansible就会尝试使用本机已登录的用户名登录远程主机。
返回至
Ansible配置
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息