ansible学习框架(附带批量部署zabbix-agent实战)

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

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  --- 表示指定查看某
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值