ansible基础必知以及对主机清单的理解

1.ansible简介

  • ansible是一种自动化运维工具,基于python2-paramiko模块开发。具有批量系统配置、批量部署以及批量执行命令等功能。
  • ansible是基于模块工作的,本身不具有批量部署的能力。真正有能力批量部署的是ansible所运行的模块,ansible只是提供一种框架

ansible这个框架主要包含下面的功能:

  1. 连接插件(负责和被监控端事先通信)
  2. 操作主机清单
  3. 核心模块、command模块、自定义模块
  4. playbook
  5. 借助与插件完成记录日志邮件等功能

2.ansible的特点

  1. 基于模块工作,可以使用任意语音开发模块
  2. 基于SSH工作
  3. playbook剧本是通过yaml语言编写的
  4. 不需要再被管理的主机上安装任何客户端软件
  5. 没有服务端的概念,使用的时候直接执行相关命令

3.ansible需要知道三点:

对谁做:主机清单文件决定的(主机清单文件叫什么,放在哪里都是由当前生效的ansible配置文件中的"inventory=" 参数决定的)
做什么:由playbook决定的
怎么做:ansible

4.通过yum方式安装完ansible后:

(centos中,ansible在epel源可以获得)

yum install ansible -y
  • 安装完ansible之后,主配置文件存放位置:/etc/ansible/ansible.cfg 主机清单文件:/etc/ansible/hosts
    上面这些是全局配置文件。
  • 默认的这个主配置文件,对所有使用ansible的用户生效。
  • 如果要使用普通用户进行执行特定的playbook时,在用该用户登陆ansible主机后,在任何文件夹下该配置文件都将覆盖默认配置文件中的内容。
  • 也就是说当两个文件都有的时候 ,用户设置的配置文件优先级会高于默认的配置文件

5.对主机清单的理解:

  1. “#”开始表示注释,空格行被忽略
  2. 一个主机名或者IP地址可以出现在多个分组中
  3. 主机列表可以使用主机名或者IP地址
  4. 使用[start:end]表示连续的主机,只支持升序排列
  5. 使用[]设置远程主机分组。[]内写的是组名
  6. 分组支持嵌套,一个组可以包含其他组,新组名中以“:children“后缀

主机清单例子:

cat /etc/ansible/hosts
# Ex 1: Ungrouped hosts, specify before any group headers.

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the 'webservers' group

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# If you have multiple hosts following a pattern you can specify
# them like this:

## www[001:006].example.com

# Ex 3: A collection of database servers in the 'dbservers' group

## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

# Here's another example of host ranges, this time there are no 连续大量主机清单[start:end]
# leading 0s:

## db-[99:101]-node.example.com

实例:

#1.标准主机
green.example.com

#2.分组的
[webservers]
alpha.example.org
beta.example.org

#3.连续大量的清单
[web]
db-[99:101]-node.example.com
192.168.[1:5].[0:255] //192.168.1.0-192.168.5.255下的所有主机

#4.非标准端口下的主机清单这样写
blue.example.com:4399 

#5.组内还包含其他组:
[a]
1.example.com
[b]
2.example.com
[c:children]
a
b

#6.设置连接参数
[member]
localhost ansible_connection=local ansible_user=user

主机清单中常用的连接参数:

  1. ansible_connection: ssh连接方式,可以指定ssh local paramiko
  2. ansible_host: ansible连接的主机地址。如果在主机清单中起了一个不同的别名,那么需要用这个参数指定主机的IP或者主机名
  3. ansible_port:ssh端口号 默认是22
  4. ansible_user:ssh连接时候使用的默认用户名
  5. ansible_ssh_pass: ssh连接时候使用的密码。不过不建议用这个参数因为是明文的
    更多参数连接可以参考官网:https://docs.ansible.com/ansible/latest

6.查看ansible版本

ansible --version

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值