Ansible 自动化运维工具(ansible自动化运维工具)
off999 2024-09-18 22:33 22 浏览 0 评论
Ansible是什么?
Ansible是一个“配置管理工具”也是一个“自动化运维工具”
Ansible 作用:
Ansible是新出现的自动化运维工具,基于Python开发,实现批量系统配置,批量程序部署,批量运行命令
Ansible 简介:
Ansible 是一个能实现批量部署的自动化运维工具,基于python开发,能实现批量系统配置,批量部署程序,批量运行命令。Ansible是基于模块来运行,它本身没有任何批量部署的能力,ansible主要是提供一种批量部署的框架。
Ansible的框架:
1. 连接的插件connection plugins: 负责和被监控端的通信
2. Host inventory : 指定服务器上配置文件定义监控的客户端
3. 核心模块: command、shell、yum、copy、ping、rm、自定义模块(第三方模块)等
4. Playbook: 剧本任务,在非必要的情况下可以在一个节点执行多个任务
Ansible 特性:
1. No agent 不需要在被管控主机上安装任何软件
2. No server 不用单独启用服务,能使用直接运行,使用时直接运行命令
3. 对硬件资源占用小
4. 不需要在被管控的主机上安装任何软件
5. 基于模块工作
6. 基于ssh工作
7. 使用yaml语言
8. 可实现多级指挥
Asible的优势:
1) 轻量级易操作
2) 分布式,无agent客户端
3) 配置语法是YAML语言
4) 轻量级,无需在客户端安装agent,更新时在操作机更新一次即可
5) 批量任务执行可以写成脚本,不用发送给客户机就可执行
6) 使用python编写,维护简单
7) 支持sudo
Ansible的架构:
连接其他主机默认使用的ssh协议,也支持local、zeromq的方式连接
核心:ansible
核心模块(core modules):ansible自带的模块
扩展模块(custom modules):核心模块不能满足需求,添加扩展模块。
插件(plugins):完成模块的补充
剧本(playbook):在ansible配置文件中,可以将多个任务定义在一个剧本中,在ansibel执行剧本。
连接插件(connectior plugins):ansible默认使用ssh连接的,但是ansible也支持其他的连接方式,其他的连接方式是需要插件的支持,才可以实现通信。
主机群(host inventory): 定义ansible管理的主机的
Ansible生成的主要文件
1 | /etc/ansible |
Ansible的工作原理:
1、 服务端连接客户端,实现通信
2、 通过服务器的节点使用模块实现客户端的需求
3、 通过剧本实现多个任务的实现
Ansible 的7个命令:
Ansible、Ansible-doc、Ansible-galaxy、Ansible-lint、Ansible-playbook、Ansible-pull、Ansible-vault:
Ansible:
Ansible是核心的指令,主要用于执行单条命令,默认跟的是主机和选项部分,默认不指定模块时,使用的是command模块(默认使用的模块可以在ansible.cfg修改):
Eg:[root@44 ~]# ansible all -a "pwd"
192.168.20.70 | SUCCESS | rc=0 >>
/root
1. 参数:
2. -a 'Arguments', --args='Arguments' 命令行参数
3. -m NAME, --module-name=NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
4. -i PATH, --inventory=PATH 指定库存主机文件的路径,默认为/etc/ansible/hosts.
5. -u Username, --user=Username 执行用户,使用这个远程用户名而不是当前用户
6. -U --sud-user=SUDO_User sudo到哪个用户,默认为 root
7. -k --ask-pass 登录密码,提示输入SSH密码而不是假设基于密钥的验证
8. -K --ask-sudo-pass 提示密码使用sudo
9. -s --sudo sudo运行
10. -S --su 用 su 命令
11. -l --list 显示所支持的所有模块
12. -s --snippet 指定模块显示剧本片段
13. -f --forks=NUM 并行任务数。NUM被指定为一个整数,默认是5。 #ansible testhosts -a "/sbin/reboot" -f 10 重启testhosts组的所有机器,每次重启10台
14. --private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接
15. -v --verbose 详细信息
16. all 针对hosts 定义的所有主机执行
17. -M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/
18. --list-hosts 只打印有哪些主机会执行这个 playbook 文件,不是实际执行该 playbook 文件
19. -o --one-line 压缩输出,摘要输出.尝试一切都在一行上输出。
20. -t Directory, --tree=Directory 将内容保存在该输出目录,结果保存在一个文件中在每台主机上。
21. -B 后台运行超时时间
22. -P 调查后台程序时间
23. -T Seconds, --timeout=Seconds 时间,单位秒s
24. -P NUM, --poll=NUM 调查背景工作每隔数秒。需要- b
25. -c Connection, --connection=Connection 连接类型使用。可能的选项是paramiko(SSH),SSH和地方。当地主要是用于crontab或启动。。。。。
Ansible-doc:
Ansible-doc -h 用于查看模块的信息常见的参数-l -s
Ansible-doc -l 列出已安装的模块
Ansible-doc -s 模块 : 查查看具体模块的使用方法
Ansible-galaxy:
Ansible-galaxy 从站点下载第三方的扩展模块
[root@44 ~]# ansible-galaxy -h
Usage: ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...
Ansible-lint:
Ansible-lint对playbook的语法进行检查的工具
Ansible-lint 剧本名
注:本人安装的ansible 没有此命令选项所以用ansible-playbook --syntax-check 对剧本进行语法的检查
[root@44 ~]# ansible-playbook --syntax-check + 剧本名
对剧本语法进行检查但不执行
Ansible-playbook:
Ansible-playbook 读取playbook文件执行相应的动作。
执行ansible-playbook的剧本
eg:执行a.yml剧本
[root@44 ~]# ansible-playbook a.yml
Ansible-pull:
Ansible-pull 适用于数量多的机器配置,远程执行命令的工具。对运维架构能力比较强
Ansible-vault:
Ansible-vault 配置文件有敏感信息,设置加密/解密这个配置文件
常用模块使用
https://www.cnblogs.com/happy-king/p/9013312.html
https://www.cnblogs.com/ExzaiTin/p/7918415.html
Ansible语法:ansible 机组名 -m 模块 -a 执行的内容
ansible软件执行结果
l 输出内容显示绿色:表示执行成功,当没有任何改变
l 输出内容显示黄色:表示执行成功,蛋对被管理主机进行了改变
l 输出内容显示红色:表示执行失败!!!
1) Setup模块
用来查看远程主机的一些基本信息
Ansible 用户 -m setup
2) Ping模块
## 用来测试远程主机的运行状态
Ansible 用户 -m ping
3) Copy模块
复制文件到远程主机
示例:将本地文件“/etc/ansible/ansible.cfg”复制到远程服务器
Ansibles -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
4) Command模块
## 在远程主机上执行命令
相关选项如下:
ansible storm_cluster-m command -a "uptime"
5) Shell模块
## 切换到某个shell执行指定的指令,参数与command相同。
这个模块与script不同的是,首先要将写好的sh脚本分发到机组,再执行
与command不同的是,此模块可以支持命令管道,同时还有另一个模块也具备此功能:raw。
示例:
先在本地创建一个SHELL脚本
vim/tmp/rocketzhang_test.sh
将创建的脚本文件分发到远程
Ansible storm_cluster -m copy -a "src=/tmp/rocketzhang_test.shdest=/tmp/rocketzhang_test.sh owner=root group=root mode=0755"
远程执行
# ansible storm_cluster -m shell -a "/tmp/rocketzhang_test.sh"
6) Script模块
用script:模块可以实现到对象节点上执行本机脚本。有点类似copy+shell+删除copy的脚本的这样一个综合的功能。
ansible host32-m script -a /tmp/hello.sh
相关推荐
- python入门到脱坑经典案例比较大小的6种经典方法
-
在Python中比较两个数的大小是最基础的编程操作之一,以下是6种经典方法及其应用场景,从基础到进阶的完整指南:1.基础比较运算符直接使用>、<、==等运算符:a,b=...
- Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
-
Python函数作为编程的核心,涵盖了众多令人兴奋的概念,如高阶函数、闭包、回调、偏函数和装饰器。本篇博客将深入研究这些概念,结合实际案例为你解析函数的精妙,以及如何巧妙地运用它们来构建更强大、灵活的...
- python编程中你遇到最恶心的事情是什么
-
在编程的广袤天地里,总有那么些让人抓狂、崩溃,甚至想“砸电脑”的恶心事儿。要说这其中最让人头疼的,莫过于代码中的“神秘Bug”1.可变默认参数的幽灵行为defappend_to(element,...
- python生成器14个常见问题及详解(python生成器定义)
-
以下是Python生成器(Generator)常见问题的详细解答,涵盖使用中的典型疑惑和解决方案:一、基础问题1.生成器只能遍历一次吗?答:是的,生成器是一次性对象,遍历完后需重新创建:defge...
- Python 中 必须掌握的 20 个核心函数及其含义,不允许你不会
-
以下是Python中必须掌握的20个核心函数及其含义,涵盖数据处理、文件操作、面向对象等关键领域,每个函数均附代码示例和应用场景:一、基础必备函数1.print()作用:输出内容到控制台示例...
- 自学Python你卡在了哪一步?被卡了几次?
-
自学Python的放弃点通常集中在以下几个阶段(按学习顺序排列),结合放弃原因和应对建议整理如下:---###**1.环境配置阶段(第1-3天)**-**放弃原因**:-安装Pytho...
- python 10个堪称完美的for循环实践
-
在Python中,for循环的高效使用能显著提升代码性能和可读性。以下是10个堪称完美的for循环实践,涵盖数据处理、算法优化和Pythonic编程风格:1.遍历列表同时获取索引(enumerate...
- python后端学什么(python后端岗位多吗)
-
在当今数字化的时代,Python后端开发成为了众多开发者追逐的热门领域。那么,想要在这个领域崭露头角,我们究竟应该学些什么呢?学习Python后端开发需要掌握全栈技术栈,涵盖从基础语法到分布式...
- Python 列表(List)详解(python中列表用法)
-
列表是Python中最基本、最常用的数据结构之一,它是一个有序的、可变的元素集合。一、列表的基本操作1.创建列表#空列表empty_list=[]empty_list=list()...
- Python 数据转换详解(python将数据转换为字符串)
-
数据转换是编程中非常重要的操作,Python提供了多种方式来实现不同类型之间的转换。下面我将详细讲解Python中的各种数据转换方法。一、基本数据类型转换1.数字类型之间的转换#整数转浮点数...
- python入门 到脱坑 基本数据类型—集合
-
以下是Python集合(Set)的入门详解,包含基础概念、常用操作和实用技巧,帮助初学者快速掌握这一重要数据类型:一、集合基础1.定义集合#空集合(必须用set(),不能用{})empty_se...
- 百看不如一练的247个Python实战案例(附高清PDF完整版教程)
-
百看不如一练,247个python实战案例拿去练手吧希望对大家有帮助!喜欢python和正在学习python的小伙伴可以练练手哦!...
- Python 中 最容易被忽略却极具价值的 8 个特性,80%都不知道
-
1.__slots__:禁止动态属性分配作用:节省内存+防止属性拼写错误示例:classUser:__slots__=['name','age']...
- python中数值比较大小的8种经典比较方法,不允许你还不知道
-
在Python中比较数值大小是基础但重要的操作。以下是8种经典比较方法及其应用场景,从基础到进阶的完整指南:1.基础比较运算符Python提供6种基础比较运算符:a,b=5,3...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python自定义函数 (53)
- python进度条 (67)
- python吧 (67)
- python的for循环 (56)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)