Ansible简单介绍及用法

embedded/2025/2/12 1:35:56/

一、简介

Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。

Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程命令执行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。

二、特点

部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认使用SSH协议对设备进行管理;
主从集中化管理;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
幂等性:一种操作重复多次结果相同

三、Ansible架构图

Ansible核心组件说明:
Ansible:Ansible的核心程序
Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Connection Plugins:连接插件,Ansible和Host通信使用

ansible得配置文件:

vim /etc/ansible/ansible.cfg

修改:host_key_checking = False

设置成默认不需要SSH协议的指纹验证

同时存在多个Ansible服务主配置文件时,具体优先级顺序:

主机清单:

/etc/ansible/hosts

插件目录:

/usr/share/ansible_plugins/

1.ansible命令的使用说明

常用选项

ansible -m MOD_NAME -a MOD_ARGS

表示调用什么模块,使用模块的那些参数

ansible中得ansible-doc得用法:

一般用法:

ansible-doc -l 获取模块信息

ansible-doc -s MOD_NAME 获取指定模块的使用帮助

四、ansible使用 之一 “命令管理方式”

command:在远程主机执行命令;不支持|管道命令

ping:探测目标主机是否存活;

shell:在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等 ;

注意:command和shell模块的核心参数直接为命令本身;而其它模块的参数通常为“key=value”格式;

copy:复制文件到远程主机,可以改权限等

例:

ansible huimin99 -m copy -a 'src=/root/5.txt dest=/tmp/test mode=640'

ansible huimin99 -m copy -a "content='hello world' dest=/tmp/test mode=640"

cpoy得相关选项:

file设置文件属性:

可以用ansible-doc -s file 查看用法参数

用法:

1)创建目录

-a "path=...   state=directory"

ansible huimin99 -m file -a "path=/tmp/www  state=directory"

2)创建链接文件

-a "src=....  dest=    state=link"

ansible huimin99 -m file -a "src=/etc/fstab dest=/tmp/fstab  state=link"

3)删除文件

-a "path=....  state=absent"

ansible huimin99 -m file -a "path=/opt/test state=absent"

如果文件不存在可以远程创建

ansible 192.168.174.132 -m file -a "path=/tmp/test state=touch"

cron模块:管理cron计划任务

ansible huimin99 -m cron -a "name='sync time' job='/usr/sbin/ntpdate time.windows.com'  minute=*/3"

yum模块:yum安装软件

ansible 192.168.174.133 -m yum -a "name=gcc state=present"

service: 服务程序管理

ansible huimin99 -m service -a "name=httpd enabled=true"

stat:获取远程文件状态信息,atime/ctime/mtime/md5/uid/gid等信息

ansible  huimin99 -m stat -a "path=/etc/sysctl.conf"

get_url:实现在远程主机下载指定url到本地,支持sha256sum文件校验

ansible huimin99 -m get_url -a "url=http://www.baidu.com dest=/opt/ mode=0440 force= yes"


http://www.ppmy.cn/embedded/161478.html

相关文章

F#语言的学习路线

F#语言学习路线 引言 在现代软件开发中,功能性编程语言逐渐得到了更多的关注与应用。F#作为一门强大且灵活的功能性编程语言,由微软开发并作为.NET平台的一部分提供支持,因其独特的特性和良好的表现,使其在数据处理、科学计算以…

AI算力的摆脱有点像发动机汽车变电动车

DS vs GPT意味着可以将AI算力的变化与汽车发动机到电动车的转变做一些对比。这两者在一定程度上都体现了技术从传统的、依赖于某些资源的方式转向更加高效、绿色的解决方案。1. 传统发动机与计算资源的变化 传统发动机:传统汽车的内燃机依赖燃油来产生动力&#xff…

【AIGC】在VSCode中集成 DeepSeek(OPEN AI同理)

在 Visual Studio Code (VSCode) 中集成 AI 编程能力,可以通过安装和配置特定插件来实现。以下是如何通过 Continue 和 Cline 插件集成 DeepSeek: 一、集成 DeepSeek 获取 DeepSeek API 密钥:访问 DeepSeek 官方网站,注册并获取 …

基于Spring Boot的图书个性化推荐系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

编程式路由

<script> export default {name: video-Info1,created () {setTimeout(() > {this.$router.push({ name: home })}, 3000)} } </script> 编程式路由&#xff1a;实现 不需要用户点击router-link&#xff0c;由代码实现路由跳转。 应用场景&#xff1a;用户登录…

网络安全威胁框架与入侵分析模型概述

引言 “网络安全攻防的本质是人与人之间的对抗&#xff0c;每一次入侵背后都有一个实体&#xff08;个人或组织&#xff09;”。这一经典观点概括了网络攻防的深层本质。无论是APT&#xff08;高级持续性威胁&#xff09;攻击、零日漏洞利用&#xff0c;还是简单的钓鱼攻击&am…

【C++】RBTree(红黑树)模拟实现

文章目录 1.红黑树的概念2.红黑树的性质3.红黑树的结点4.insert函数&#xff08;插入结点&#xff09;5.左旋、右旋6.总代码 后续有时间会增加erase 1.红黑树的概念 红黑树是一种自平衡的二叉搜索树。每个节点额外存储了一个 color 字段 (“RED” or “BLACK”)&#xff0c; …

问卷数据分析|SPSS实操之信度效度检验

信效度检验只有量表题可以进行 ​​​​​​一、信度检验SPSS操作 1.选择分析--刻度--可靠性分析 2. 选中每一个自变量/因变量的数据&#xff0c;放入到右边 3. 此处为结果&#xff0c;项数和克隆巴赫值&#xff0c;记住每一个总的自变量和因变量的项数和值具体可看后面案例分…