ansible学习框架
一、介绍
1、what
Ansible是一种自动化的运维工具,基于Python开发,能够实现批量操作。类似的自动化运维工具有 Puppet, SaltStack, Chef
Ansible架构
1、连接插件connectior plugins用于连接被管理端
2、核心模块 core modules 连接主机实现操作, 它依赖于具体的模块来做具体的事情
3、自定义模块 custom modules,根据自己的需求编写具体的模块
4、插件 plugins,完成模块功能的补充
5、剧本 playbooks,ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
6、主机清单 inventory,定义ansible需要操作主机的范围
最重要的一点是 ansible是模块化的 它所有的操作都依赖于模块
2、why
Ansible特性:
-
ansible不需要单独安装客户端,也不需要启动任何服务
-
ansible是python中的一套完整的自动化执行任务模块
-
ansible playbook,采用yaml配置,对于自动化任务执行一目了然
-
ansible 模块较多,对于自动化的场景支持较丰富
二、安装
此处以centos为例
yum install -y ansible --- 需要依赖epel的yum源
三、配置文件详解
1. 主要文件介绍
配置文件:
/etc/ansible/ansible.cfg --- ansible服务配置文件
/etc/ansible/hosts --- 主机清单文件,定义可以管理的主机信息
/etc/ansible/roles --- 角色目录
注意:
ansible.cfg服务配置文件可随意放置,但是又查找循序 : 当前目录下面查找-》当前用户的家目录下查找-》/etc/ansible/ansible.cfg
2. ansible.cfg 配置文件详解
#inventory = /etc/ansible/hosts #主机列表配置文件
#library = /usr/share/my_modules/ #库文件存放目录
#remote_tmp = ~/.ansible/tmp #临时py文件存放在远程主机目录
#local_tmp = ~/.ansible/tmp #本机的临时执行目录
#forks = 5 #默认并发数
#sudo_user = root #默认sudo用户
#ask_sudo_pass = True #每次执行是否询问sudo的ssh密码
#ask_pass = True #每次执行是否询问ssh密码
#remote_port = 22 #远程主机端口
host_key_checking = False #跳过检查主机指纹
log_path = /var/log/ansible.log #ansible日志
[privilege_escalation] #如果是普通用户则需要配置提权
#become=True
#become_method=sudo
#become_user=root
#become_ask_pass=False
四、Inventory
1、what
/etc/ansible/hosts主机资产清单文件,用于定义被管理主机的认证信息
2、how
ansible有两种连接被管理主机的方式:
1、基于配置文件的密码连接
2、基于密钥连接
eg:
1、基于配置文件的密码连接
#vim /etc/ansible/hosts
[webservers]
10.0.0.31 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='123456'
2、基于密钥连接
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.41
# vim /etc/ansible/hosts
[webservers]
10.0.0.31
10.0.0.31:22
nfs-node1 ansible_ssh_host=10.0.0.31 ansible_ssh_port=22
支持写法:
1.主机支持主机名通配以及正则表达式,例如`web[1:3].oldboy.com`代表三台主机
2.主机支持基于非标准的ssh端口,例如`web1.oldboy.com:6666`
3.主机支持指定变量,可对个别主机的特殊配置,如登陆用户,密码
4.主机组支持指定变量`[group_name:vars]`,同时支持嵌套组`[game:children]`
五、Ad-Hoc
1、what
零时执行的单条ansible命令
2、how
语法:
# ansible [主机或主机组] -m [模块] -a [参数]
Ansible执行返回->颜色信息说明
黄色:对远程节点进行相应修改
绿色:对远程节点不进行相应修改,或者只是对远程节点信息进行查看
红色:操作执行命令有异常
紫色:表示对命令执行发出警告信息(可能存在的问题,给你一下建议)
3、主要模块介绍
- command 命令模块(默认模块,不支持管道)
- shell (支持管道,常用)
script脚本模块yum安装软件模块copy文件拷贝模块file文件配置模块service服务模块group组模块user模块- template 模板
crond定时任务模块mount模块
其他模块、具体操作可以用ansible-doc 命令查看文档,有详细的实例!
eg:
# ansible-doc -l --- 查看所有模块说明信息
# ansible-doc copy --- 表示指定查看某

本文介绍了Ansible自动化运维工具,包括其模块化结构、安装配置、Inventory主机清单、Ad-Hoc命令、playbook剧本、roles角色应用,以及实战部署zabbix-agent的过程。重点讲解了配置文件、连接方式和关键模块的使用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



