当前位置: 首页 > article >正文

Ansible使用简介和基础使用

一、Ansible简介
自动化运维
IT运维是目前IT服务中的重要组成部分

运维方式:

传统运维

手动操作:很多任务需要手动完成,包括系统部署、配置和故障排查等
资源密集型:依赖大量人力投入,容易受到人为因素的影响
反应式:更多地是根据问题出现后再进行处理和修复,缺乏主动性和预防性
时间成本高:由于手动操作和反应式处理,时间成本相对较高,而且容易出现人为失误
自动化运维

自动化工具:广泛使用自动化工具来完成系统管理、部署、监控和故障处理等任务
自动化流程:通过编写脚本或使用自动化平台来实现工作流程的自动化,减少人工干预
预防性维护:更注重预防性维护,通过自动化监控和报警系统,能够在问题出现前进行预警和处理
时间成本低:自动化运维能够大大降低时间成本,提高效率,减少人为错误
总的来说,掌握自动化运维有助于提高工作效率,简化运维工作

自动化运维工具
Puppet:

Puppet 是一个基于客户端/服务器模型的自动化配置管理工具
使用Ruby语言开发
基于SSL,远程执行命令能力较弱能
Chef:

Chef 使用 Ruby 语言编写配置文件
能够实现基础设施的自动化部署、配置和管理
SaltStack:

SaltStack 是一个快速、灵活的系统管理和自动化软件
使用 Python 编开发
支持远程执行命令、配置管理等功能
Ansible

目前应用最为广泛的自动化运维工具
2012年首次发布,2015年被RedHat收购
基于 Python的paramiko 开发,分布式
基于SSH进行远程管理,被控节点无需额外安装任何客户端软件,轻量级
配置语法使用 YMAL 及 Jinja2 模板语言
使用模块管理被控节点,具备更强的远程命令执行操作能力
Ansible使用环境
控制节点

安装Ansible软件
Python环境支持:Python>=2.6
必要的模块:如PyYAML等
被控节点

启用SSH服务
允许控制节点登录,通常设置免密登录
Python环境支持


二.Ansible使用方法
使用方法介绍
ad-hoc临时命令

在命令行下使用ansible命令调用Ansible模块,实现被控节点远程管理
通常用于查询信息或临时简易操作
Playbook剧本

把管理任务以特定的格式编辑在文件中,通过ansible-playbook命令远程管理被控节点
通常用于复杂任务设计及远程执行
使用方法样例
ad-hoc临时命令
## 语法
# ansible [主机或组列表] -m 模块 -a "参数"
# 常用额外选项:
    # -i:指定主机清单列表文件
    # -k:使用密码登录远程主机,通常用于某个特殊被控节点未做免密登录的场景下
    
## 样例:ping模块用于测试是否可以SSH远程登录被控节点主机
[root@pubserver ansible]# ansible all -m ping
web1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
...
# 返回结果为绿色的SUCCESS状态信息则为成功
# 返回结果为红色的UNREACHABLE则为失败,需要检测管理节点与被控节点网络统计和是否可以免密登录

一、Ansible简介
自动化运维
IT运维是目前IT服务中的重要组成部分

运维方式:

传统运维

手动操作:很多任务需要手动完成,包括系统部署、配置和故障排查等
资源密集型:依赖大量人力投入,容易受到人为因素的影响
反应式:更多地是根据问题出现后再进行处理和修复,缺乏主动性和预防性
时间成本高:由于手动操作和反应式处理,时间成本相对较高,而且容易出现人为失误
自动化运维

自动化工具:广泛使用自动化工具来完成系统管理、部署、监控和故障处理等任务
自动化流程:通过编写脚本或使用自动化平台来实现工作流程的自动化,减少人工干预
预防性维护:更注重预防性维护,通过自动化监控和报警系统,能够在问题出现前进行预警和处理
时间成本低:自动化运维能够大大降低时间成本,提高效率,减少人为错误
总的来说,掌握自动化运维有助于提高工作效率,简化运维工作

自动化运维工具
Puppet:

Puppet 是一个基于客户端/服务器模型的自动化配置管理工具
使用Ruby语言开发
基于SSL,远程执行命令能力较弱能
Chef:

Chef 使用 Ruby 语言编写配置文件
能够实现基础设施的自动化部署、配置和管理
SaltStack:

SaltStack 是一个快速、灵活的系统管理和自动化软件
使用 Python 编开发
支持远程执行命令、配置管理等功能
Ansible

目前应用最为广泛的自动化运维工具
2012年首次发布,2015年被RedHat收购
基于 Python的paramiko 开发,分布式
基于SSH进行远程管理,被控节点无需额外安装任何客户端软件,轻量级
配置语法使用 YMAL 及 Jinja2 模板语言
使用模块管理被控节点,具备更强的远程命令执行操作能力
Ansible使用环境
控制节点

安装Ansible软件
Python环境支持:Python>=2.6
必要的模块:如PyYAML等
被控节点

启用SSH服务
允许控制节点登录,通常设置免密登录
Python环境支持


二.Ansible使用方法
使用方法介绍
ad-hoc临时命令

在命令行下使用ansible命令调用Ansible模块,实现被控节点远程管理
通常用于查询信息或临时简易操作
Playbook剧本

把管理任务以特定的格式编辑在文件中,通过ansible-playbook命令远程管理被控节点
通常用于复杂任务设计及远程执行
使用方法样例
ad-hoc临时命令
## 语法
# ansible [主机或组列表] -m 模块 -a "参数"
# 常用额外选项:
    # -i:指定主机清单列表文件
    # -k:使用密码登录远程主机,通常用于某个特殊被控节点未做免密登录的场景下
    
## 样例:ping模块用于测试是否可以SSH远程登录被控节点主机
[root@pubserver ansible]# ansible all -m ping
web1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
...
# 返回结果为绿色的SUCCESS状态信息则为成功
# 返回结果为红色的UNREACHABLE则为失败,需要检测管理节点与被控节点网络统计和是否可以免密登录


http://www.kler.cn/a/406853.html

相关文章:

  • 安宝特分享 | 如何利用AR技术革新医疗实践:从远程急救到多学科协作
  • 数据结构之树与二叉树
  • 工具学习_Docker
  • AI智能稿件排版系统订单管理系统
  • Bokeh实现大规模数据可视化的最佳实践
  • 【C#设计模式(14)——责任链模式( Chain-of-responsibility Pattern)】
  • 嵌入式 UI 开发的开源项目推荐
  • C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云
  • vue3中父div设置display flex,2个子div重叠
  • 华为无线AC+AP组网实际应用小结
  • FreeIPCC:Ai智能呼叫中心是什么?
  • 【数据结构】归并排序 —— 递归及非递归解决归并排序
  • 基于自混合干涉测量系统的线展宽因子估计算法matlab仿真
  • Python Matplotlib 安装指南:使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装
  • MAC C语言 Helloword
  • spring学习(四)
  • DevOps 之 CI/CD入门操作 (二)
  • k8s上面的Redis集群链接不上master的解决办法
  • Powershell 命令行窗口 设置行宽、折行、行省略
  • IText创建加盖公章的pdf文件并生成压缩文件
  • 高级java每日一道面试题-2024年11月22日-JVM篇-说说堆和栈的区别?
  • 纯HTMLCSS实现3D旋转地球
  • 嵌入式C语言面试题 - 2024/11/18
  • 【HM-React】01. React基础-上
  • element-plus教程:Layout 布局
  • 从容器到Podman:一个全方位的剖析