运维SRE-15 自动化批量管理-ansible1

这篇具有很好参考价值的文章主要介绍了运维SRE-15 自动化批量管理-ansible1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

## 1.什么是自动化批量管理
重复性工作与内容: 思考如何自动化完成.
部署环境,批量查看信息,批量检查:自动化
一般步骤:
	1.如何手动实现
	2.如何自动化管理工具,批量实现
	3.注意事项:想要自动化一定要先标准化(所有环境,软件,目录一致)
	4.注意事项:尽量进行分组(比如:所有web服务器是1组)

2.自动化工具选择

自动化批量管理工具
Ansible 基于python语言编写,使用极其简单,不需要客户端
Saltstack 基于python语言编写,需要安装客户端
TereForm 批量管理平台,批量创建阿里云服务器,批量创建aws服务器
Fabric python使用它
Chef 了解即可
puppet 古老一些的批量管理工具

3.Ansible架构

运维SRE-15 自动化批量管理-ansible1,运维,自动化,linux

4.Ansible极速使用指南

4.1 环境准备

ansible环境
ansible管理端 m01,10.0.0.210
被管理机器 web01 10.0.0.7
被管理机器 backup 10.0.0.41
被管理机器 nfs01 10.0.0.31
被管理机器 db01 10.0.0.51
sh /server/scripts/ssh_check.sh hostname

4.2 ansible部署

m01

yum install -y ansible
#epel源中的软件包

4.3 初步配置主机清单(inventory)

root@m01 /etc/ansible]# cat hosts 
[hbinz]
172.16.1.7
172.16.1.31
172.16.1.41
172.16.1.51

4.4与ansible的第一次接触

ansible hbinz -m ping
#第一次会提示yes/no

运维SRE-15 自动化批量管理-ansible1,运维,自动化,linux

4.5 小结

1.密钥认证
2.环境准备,部署ansible
3.修改ansible 主机清单
4.测试,ansible hbinz -m ping
ansible命令格式
ansible 主机分组 -m指定模块
ansible 主机分组 -m指定模块 -a 指定模块中的选项
module action

5.ansible配置文件

ansible.cfg   #ansible配置文件
#71:host_key_checking = False  主机校验关掉
hosts			#ansible默认的主机清单		

6.ansible主机清单

6.1 基本格式

[root@m01 /etc/ansible]# cat hosts 
[hbinz]  #[组的名字]
172.16.1.7
172.16.1.31
172.16.1.41
172.16.1.51

[web]
172.16.1.7
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.41

6.2指定用户名,密码,端口

主机清单中指定信息
连接的ssh端口 ansible_ssh_root=22
连接的ssh端口 ansible_ssh_user=root
连接的ssh端口 ansible_ssh_pass=‘thinker’
[web]
172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.41

6.3 子组

我想把多个主机分组进行合并,比如把db,nfs,backup合并成一个组叫data组.
[web]
172.16.1.7
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.41

[data:children] #data:children表示data是创建的子组,组里面包含 db,nfs,backup3个组.
db
nfs
backup

6.4主机清单案例

1)案例1:查看与使用指定的子组 data
ansible data -m command -a 'hostname'
2)案例2:查看指定的组db
ansible db -m command -a 'hostname'
3)案例3:查看所有主机情况
ansible all -m command -a 'hostname'
4)案例4:查看某一机器
ansible 172.16.1.7 -m command -a 'hostname'

7.ansible核心模块

7.1模块概述

模块分类
命令和脚本模块 command模块,默认的模块,执行简单命令,不支持特殊符号
shell模块,执行命令,支持特殊符号
script模块,分发脚本并执行
文件 file,创建目录,文件,软链接
copy,远程分发文件,修改权限,所有者,备份
服务 systemd服务管理
service服务管理(了解)
软件包 yum源,yum repository
yum命令
get_url下载软件
系统管理 mount模块,挂载
cron模块,定时任务
用户管理 group模块,管理用户组
user模块,管理用户
其他可以研究 压缩解压(unarchive),rsync模块(synchronize),数据库模块(mysql_db,mysql_user)…
其他 ansible管理docker k8s zabbix grafana…
用于调试模块 ping 模块检查,ansible与其他节点连通性
debug模块,检查/显示变量

7.2如何查询帮助

通过命令: ansible-doc -s command
查看官网:

传送门

7.3ansible命令与脚本类模块

1)command模块

仅支持简单命令,不支持特殊符号,管道....
⚠ 这个模块是默认模块,ansible不加上模块,默认就使用这个模块.
ansible all -m command -a '命令'
ansible all -a 'hostname' #相当于省略 -m command

2)shell模块

与command类似,shell模块支持特殊符号,执行脚本...
ansible all -m shell -a 'ip a s eth0|sed -n 3p' #command不支持特殊符号
  • ansible颜色
    • 绿色表示正常
    • 黄色表示执行正常,状态变化
    • 红色表示错误,输出错误信息
    • 紫色表示警告,建议

3)script模块-传输脚本到被管理端并执行脚本

传输脚本
执行脚本
安装ipvsadm
cat /server/scripts/yum.sh
yum install -y ipvsadm

#安装
ansible db -m script -a '/server/scripts/yum.sh'
#检查
ansible db -m shell -a 'rpm -qa|grep ipvsadm'
[root@m01 /etc/ansible]# ansible db -m shell -a 'rpm -qa|grep ipvsadm'
[WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'.  If you need to use command because yum, dnf or zypper is insufficient you can add 'warn: false' to this command task
or set 'command_warnings=False' in ansible.cfg to get rid of this message.
172.16.1.51 | CHANGED | rc=0 >>
ipvsadm-1.27-8.el7.x86_64

4)命令与脚本模块

模块 含义 应用
command模块 执行命令 简单命令,不含特殊符号,默认的模块ansible all -a 'hostname'
shell模块 执行命令或脚本 执行含有特殊符号:管道,反引号,{}的命令,运行脚本(脚本在管理端).
script模块 先传输脚本,然后运行脚本 一般用于执行脚本

7.4ansible-文件与目录管理模块

  • file 创建文件,目录
  • copy 远程传输文件,目录,类似于scp

1)file模块
管理文件或目录,软链接

file模块中的选项
path 路径(目录,文件)必须要写
src(source源) 源文件一般用于link(创建软链接模式)用于指定源文件
state (状态)(模式)state=directory 创建目录state=file (默认)更新文件,如果文件不存在也不创建state=link 创建软链接state=touch 创建文件state=absent 删除

案例01-创建目录/hbinz/目录

ansible all -m file -a 'path=/hbinz state=directory'

案例02-创建文件/hbinz/hbinz.txt文件

ansible all -m file -a 'path=/hbinz/hbinz.txt state=touch'
ansible all -a 'ls -l /hbinz'

案例03-创建软链接 /hbinz/hbinz.txt到/tmp/hbinz.txt.soft

ansible all -m file -a 'src=/hbinz/hbinz.txt path=/tmp/hbinz.txt.soft state=link'

ansible all -a 'ls -l /tmp/hbinz.txt.soft'

案例04-删除文件、目录、软链接

ansible all -m file -a 'path=/hbinz/hbinz.txt state=absent'
ansible all -m file -a 'path=/hbinz state=absent'
ansible all -m file -a 'path=/tmp/hbinz.txt.soft state=absent'

案例05-创建文件/tmp/hbinz.txt,所有者root,用户组root,权限755

ansible all -m file -a 'path=/tmp/hbinz.txt owner=root group=root mode=755 state=touch'
ansible all -a 'ls -l /tmp/oldboy.txt'

2)copy远程传输模块

copy模块
src source源文件
dest destination目标
backup backup=yes 则会在覆盖前备份
mode 修改权限
owner 修改为指定所有者
group 修改为指定用户组

案例01-传输/etc/hosts文件到/etc/hosts

ansible all -m copy -a 'src=/etc/hosts dest=/etc/hosts'

案例02–传输/etc/hosts文件到/etc/hosts-先备份然后修改

ansible all -m copy -a 'src=/etc/hosts dest=/etc/hosts backup=yes'

3)文件传输小结

文件管理与传输 含义
file 创建/删除 文件/目录,软链接
copy 远程分发文件/目录,软件包,压缩包…

7.5ansible-服务管理模块

就是用了systemctl 命令
启动/关闭/重启服务
开机自启动/开机不自启动

1)systemd

systemd
name 用于指定服务名称
enabled 控制服务的开机自启动 enabled=yes /enable=no
state 表示服务开,关,重启…state=started 开启state=stopped 关闭state=reloaded 重读配置文件(服务支持的情况下sshd nfs nginx)state=restarted 重启(关闭再开启)
daemon-reload yes是否重新加载对应的服务的管理配置文件(讲解了systemctl配置文件.)
案例01-关闭firewalld
ansible all -m systemd -a 'name=firewalld enabled=no state=stopped'
ansible all -a 'systemctl state firewalld'

案例02-开启sshd服务

ansible all -m systemd -a 'name=sshd enabled=yes stat=started'
ansible all -a 'systemctl state sshd'

案例03-重启backup这台机器上面的rsync服务

ansible backup -m systemd -a 'name=rsyncd state=restarted'

2)service

服务管理模块 systemd模块 service模块
开机自启动 enabled enabled
服务名称 name name
服务开关重启 state state
运行级别 runlevel(运行级别)
重启加载systemctl配置 daemon_reload=yes systemctl daemon-reload

3)服务管理模块小结文章来源地址https://www.toymoban.com/news/detail-836846.html

模块
systemd 管理linux 红帽7以上推荐使用,ubuntu…
service 6及一下

到了这里,关于运维SRE-15 自动化批量管理-ansible1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SRE 与开发的自动化协同 -- 生产环境出现 bug 自动生成异常追踪

    生产环境 bug 的定义:RUM 应用和 APM 应用的  error_stack  信息被捕捉后成为 bug。 以 APM 新增错误巡检为例,当出现新错误时,在观测云控制台的「事件」模块下生成新的事件报告,捕捉为 bug。同时利用 Dataflux Func 创建异常追踪,调用观测云 OpenAPI ,在观测云控制台的「异常

    2024年02月11日
    浏览(29)
  • Linux6.2 ansible 自动化运维工具(机器管理工具)

    第一章 LINUX ansible 自动化运维工具(机器管理工具) 一、概述 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现 Ansible能批量配置、部署、管理

    2024年02月14日
    浏览(33)
  • 【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)

    目录 一、基于 Jenkins+k8s+Git+Docker Hub 等技术链构建企业级 DevOps 容器云平台 1.1 安装 Jenkins 1.1.1 安装 nfs 服务 1.1.2 在 kubernetes 中部署 jenkins 1.2 配置 Jenkins ​1.2.1 获取管理员密码 1.2.2 安装插件 1.2.3 创建第一个管理员用户 1.3 测试 jenkins 的 CI/CD 1.3.1 在 Jenkins 中安装 kubernetes 插件

    2024年01月16日
    浏览(56)
  • 基于云计算的自动化部署与自动化运维:提高运维效率

    作者:禅与计算机程序设计艺术 随着互联网技术的飞速发展,网站流量日益增长,用户对网站功能及其可用性的需求也越来越高,越来越多的人开始担忧网站的安全和稳定性。因此,如何快速、准确地处理网站故障、迅速恢复网站服务并保障网站高可用,成为企业必须重点关

    2024年02月11日
    浏览(31)
  • 云计算是指利用互联网所提供的基础设施、网络服务和平台,实现数据中心的虚拟化、动态管理、自动化运维功能

    作者:禅与计算机程序设计艺术 云计算是指利用互联网所提供的基础设施、网络服务和平台,实现数据中心的虚拟化、动态管理、自动化运维功能。传统的数据中心的资源由专业IT人员手动管理,而云计算则让硬件资源可按需弹性扩展、弹性迁移、自动化伸缩、降低成本。

    2024年02月08日
    浏览(32)
  • 自动化运维CICD

    目录 概述 为什么持续集成和发布可以提高效率 如何实现 1、在linux服务器安装部署代码仓库 2、安装jenkins 使用shell脚本实现CICD 使用pipeline实现CICD 使用Blue Ocean实现CICD 持续集成(Continuous Integration,CI)和持续发布(Continuous Delivery,CD,又称持续交付)是经常放在一起提及的两

    2024年02月05日
    浏览(36)
  • Ansible自动化运维

    目录 前言 一、概述 常见的开源自动化运维工具比较 二、ansible环境搭建 三、ansible模块 (一)、hostname模块 (二)、file模块 (三)、copy模块 (四)、fetch模块 (五)、user模块 (六)、group模块 (七)、cron模块 (八)、yum_repository模块 (九)、yum模块 (十)、service模块

    2024年02月09日
    浏览(39)
  • DevOps?自动化运维!

    by: 雪月三十 DevOps流程图 DevOps是Dev和Ops的结合 Dev(developer开发) Ops(operation运维) 在企业中dev和ops是有一种天然的矛盾,dev要求的是快速迭代,给公司挖掘出商业的价值,而ops则是强调的稳定,不让你如此快的开发,以稳定为主,不希望动代码(if no problem, don’t touch it),所

    2024年02月12日
    浏览(43)
  • Appium自动化(15) - 针对 webview 进行自动化测试

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! WebView是android中一个非常重要的控件 它的作用是用来展示一个web页面

    2024年04月10日
    浏览(42)
  • 运维自动化bingo前端

    项目目录结构介绍 项目创建完成之后,我们会看到bingo_web项目其实是一个文件夹,我们进入到文件夹内部就会发现一些目录和文件,我们简单回顾一下里面的部分核心目录与文件。 2.3、项目执行流程图 要在Vue.js项目中指定域名和端口,你通常需要配置Vue CLI提供的 devServer ,

    2024年02月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包