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

ansible 简介相关推荐

  1. Ansible简介及各模块用法实操

    目录 一,Ansible简介及工作原理过程 1,简介 2,工作原理过程 二,基础坏境配置 1,安装 ​2,ssh配置 三,Ansible入门及常用模块用法 1,静态资产 2,自定义动态资产 3,使用资 ...

  2. 001. Ansible简介

    一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点. 实现了批量系统 ...

  3. Ansible简介及常用模块

    一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  4. 自动化运维工具Ansible

    ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

  5. ansible 详解

    文章目录 一.ansible 简介 1.1 ansible 是什么? 1.2 ansible 特点 1.3 ansible 架构图 二.ansible 任务执行 2.1 ansible 任务执行模式 ...

  6. 从Docker 到Jenkins 到Ansible的部署经验

    从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作.我从频繁的部署工作中,逐渐找到了一些偷懒的方法.从传统的Java -jar命令启动服务,到通过 ...

  7. 运维自动化------ansible搭建

    运维自动化发展历程及技术应用 IaaS基础设施即服务(相当于卖硬件) ,PaaS平台即服务(卖操作系统),SaaS软件即服务(卖软件) 企业实际应用场景分析 灰度环境(生产环境的一部分) 功能:在全量 ...

  8. 一小时学会Ansible自动化运维

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 今天分享一个讲解 Ansible 的 PPT,内容非常全面,可帮助你更好的学习Ansible. 红帽R ...

  9. ansible使用教程(4W字长文,保姆级别教程,建议收藏)

    目录 一.介绍 1.Ansible发展史 2.特性 3.架构 4.ansible的作用以及工作结构 5.ansible主要组成部分 二.安装 1.rpm包安装: EPEL源 2.编译安装: 3.Git ...

最新文章

  1. 在macOS 10.13.6下安装Grafana实录
  2. python利用什么来写模块-Python模块的制作方法实例分析
  3. 百练 05 切割回文
  4. Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock
  5. python基础之psutil模块和发邮件(smtplib和yagmail)
  6. linux下的etc文件夹
  7. uniapp app端根据支付宝qr链接 直接打开支付宝app支付页面
  8. 【论文导读】- Cluster-driven Graph Federated Learning over Multiple Domains(聚类驱动的图联邦学习)
  9. netbackup服务linux,命令行方式管理NETBACKUP
  10. dede首页调用全站tag
  11. 有关是否携带首部的随笔
  12. 联通宽带在停电以后断网,重启猫还是没网,可能是设置出问题了
  13. Nginx 的安装配置
  14. 什么叫做实体经济危机?
  15. 致那些自嘲码农的苦逼程序员
  16. 宏观经济学gdp计算方法_曼昆宏观经济学读书笔记(一):GDP、通胀率、失业率...
  17. Jetpack系列之 Paging 详解
  18. Django——在线教育项目总结
  19. cad==sketchup
  20. Android自定义控件2-简单的写字板控件

热门文章

  1. C++投票(结构体)
  2. 申银万国管理信息系统案例
  3. Android Studio: Design editor is unavailable until a successful build 问题处理
  4. 租个云服务器多少钱,租个阿里云服务器多少钱
  5. 一起自学SLAM算法:第4章-机器人传感器
  6. 关于TAE(Transactional Analytical Engine)的那些事
  7. idea无法搜索下载插件问题解决
  8. flutter项目连接不了夜神模拟器的解决方案
  9. 一次调频matlab仿真,基于Matlab的大型火电机组一次调频特性仿真.pdf
  10. BUUCTF--[GXYCTF2019]BabySQli详解