Ansible 基础知识
目录:
一、ansible相关链接
二、ansible安装
三、ansible目录结构
四、ansible配置文件
五、ansible主机清单
六、ansible变量(非常重要)
七、ansible执行命令
八、ansible privilege_escalation(权限提升)
一、ansible相关链接
二、ansible安装
2. 源码安装
三、ansible目录结构
配置文件: /etc/ansible/
执行文件: /usr/bin/
lib库依赖: /usr/lib/pythonx/site-packages/ansible/
四、ansible配置文件
配置文件路径 /etc/ansible/ansible.cfg
[ssh_connection] pipelining = True 管道加速功能,可提升文件传输效率
[defaults] log_path = /var/log/ansible.log 启用ansible日志
五、ansible主机清单
主机清单文件路径 /etc/ansible/hosts
语法格式:
# 定义单个server 192.168.20.100 controller.openstack.com controller.openstack.com:222 #默认端口22 # 定义group [openstack] controller.openstack.com compute[1:10].openstack.com # 定义主机变量 controller.openstack.com http_port=8080 # 定义group变量 [openstack:vars] ntp_server=ntp.openstack.com
六、ansible变量(非常重要)
变量通常从如下4个位置检索:
1. Inventory配置文件hosts
2. Playbook中定义的vars
3. Roles中的vars目录下的文件
4. Roles同级目录group_vars和hosts_vars目录下的文件
七、ansible执行命令
注意:在执行ansible命令以前,需要将所有被管理主机配置好公私钥认证
注意:ansible命令支持正则
语法格式: ansible <host-pattern> [options]
示例1: ping模块来验证连通性
ansible server-group -m ping
示例2:copy模块文件复制
ansible server-group -m copy -a "src=/tmp/test.txt dest=/opt/"
八、ansible privilege_escalation(权限提升)
当ansible使用的账户没有root权限时,当执行某些操作时需要root权限,因此需要配置privilege_escalation
1. 在ansible server上修改ansible.cfg
[privilege_escalation]
become=True # 启用权限提升功能
become_method=sudo # 权限提升的方式
become_user=root # 权限提升的用户
become_ask_pass=False # 权限提升是否询问密码
2. 在目标机器上修改sudoers,添加普通账户sudo无需密码
user001 ALL=(ALL) NOPASSWD: ALL