ansible 简介

Ansible是一种常用的自动运维化工具,基于python开发,分布式,无需客户端,轻量级,配置语言采用YAML。

Ansible的特性:

1.模块化:调用特定的模块,完成特殊的任务。
2.Paramiko(python对ssh的实现),PyYaml,jinja2(模块语言)三个关键模块。
3.支持自定义模块,可使用任何编程语言写模块。
4.基于python语言实现。
5.部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖KPI(无需SSL)。
6.安全,基于OpenSSH
7.幂等性:一个任务执行一次和执行n遍效果一样,不因重复执行带来意外情况。
8.支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构。
9.较强大的多层解决方案role。

Ansible的作用目标:

1.自动化部署APP
2.自动化管理配置项
3.自动化的持续交付
4.自动化的云服务管理

Ansible的架构:

在这里插入图片描述

Ansible的工作原理:

在这里插入图片描述

Ansible命令执行来源:

1> USER,普通用户,即SYSTEM ADMINISTRATOR
2> CMDB(配置管理数据库) API 调用
3> PUBLIC/PRIVATE CLOUD API调用 (公有私有云的API接口调用)
4> USER-> Ansible Playbook -> Ansibile

利用ansible实现管理的方式:

1> Ad-Hoc 即ansible单条命令,主要用于临时命令使用场景
2> Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程

Ansible-playbook(剧本)执行过程

将已有编排好的任务集写入Ansible-Playbook
通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行

Ansible主要操作对象

HOSTS主机
NETWORKING网络设备
注意事项:
执行ansible的主机一般称为主控端,中控,master或堡垒机
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端 ansible不是服务,不会一直启动,只是需要的时候启动

一:Ansible的安装

1.yum安装:
EPEL源:yum -y install epel-release
yum install ansible -y
(只推荐这一种方法)

二 :Ansible的相关文件

在这里插入图片描述
配置文件
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改)
/etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
/etc/ansible/roles/ 存放角色的目录

程序
/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文档,模块功能查看工具
/usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
/usr/bin/ansible-pull 远程执行命令的工具
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基于Console界面与用户交互的执行工具

三:Ansible的相关命令

在这里插入图片描述在这里插入图片描述
列出所有主机:ansible all --list-hosts
在这里插入图片描述

e.g.1 打开三台机器,第一台安装ansible工具,编辑/etc/ansible/hosts文件,在文件末行添加子目录ip地址
[webserves]是为了便捷地使用主机,在inventory file中设置的分组命名
在这里插入图片描述
然后将第一台机器的公钥拷贝到两个子网中
cd /root/.ssh/
ll
ssh-copy-id root@192.168.218.11 id_rsa.pub
在这里插入图片描述
(1.在管理节点生成公钥 ssh-keygen; 路径为 :~/.ssh/id_rsa.pub
2.添加目标节点的SSH认证信息,在管理节点执行如下命令 : ssh-copy-id root@目标节点ip)

第三步为测试
ansible+分组名称或all -m ping
在这里插入图片描述
ansible all -m ping -k 连接时需要输入密码,默认为key验证
ansible “*” -m ping 连接所有的ip地址
ansible webservers --list-hosts 列出这组的ip地址
ansible “lvs-servers:webservers” -m ping : 表示或的关系
ansible “lvs-servers:&webservers” -m ping :& 表示逻辑与关系
ansible ‘lvs-servers:!webservers’ -m ping :! 逻辑非关系(此处用单引号)
ansible webservers -m ping -v 查看详细执行过程
ansible all -m ping -u wang -k 以wang用户执行ping存活检测

e.g.2 开启三台机器,在第一台安装ansible,另外两台创建用户xingyun
useradd xingyun
cat /etc/passwd | grep xingyun
passwd wang (设置用户wang的密码)

配置两个子网中xingyun用户的sudo权限
vi /etc/sudoers (在末行添加)
在这里插入图片描述

以xingyun sudo到root执行ping存活检测
ansible all -m ping -u xingyun -K -b
在这里插入图片描述
ping模块测试链接
ansible 192.168.218.11,192.168.218.12 -m ping -k
在这里插入图片描述
在另外两台子网中创建用户wang, 以xingyun sudo至wang用户来执行ping存活检查
ansible all -m ping -u xingyun -K -b --become-user=wang
在这里插入图片描述

  • 23
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值