ansible DBA常用场景命令小集

61 篇文章 8 订阅
60 篇文章 13 订阅

       这个小工具真的好用,运维方便了很多。随着慢慢用的变多,整个单独的文档记录一些平时需要批量处理的小场景和命令。

       因为场景通常比较简单,基本都是用的 Linux命令和shell脚本,也没什么学习成本。理论上只要能写好shell脚本、传到目标库、执行,足够干n多事情了。基本命令参考:

ansible权威指南笔记(一)—— 安装配置、常用命令与模块_Hehuyi_In的博客-CSDN博客_ansible中文权威指南

一、 检查服务器磁盘使用率

主要场景:节前快速检查服务器磁盘

        先从最简单的开始,利用ansible批量执行 df -h 命令,并且这个普通用户都能执行,不存在sudo之类的配置。想看的方便点也可以搞成个shell脚本,下面有批量执行shell脚本的方法。

  •  编辑host文件(任意位置均可)

vi /tmp/host

[all:vars]
ansible_ssh_user=dba        # ssh用户
ansible_ssh_pass=xxxx       # ssh用户的密码,配置了key可以不用

[testgroup]
10.192.168.101
10.192.168.137 ansible_ssh_port=9528
  • 批量执行df -h命令
ansible -i /tmp/host testgroup -m shell -a "df -h" > disk_usage.txt

二、 安装/更新软件包

主要场景:服务器需要批量安装新软件包,或者修复漏洞要批量升级。 

  • 编辑host文件(任意位置均可)

vi /tmp/host

        生产服务器一般不会有root的密码,都是sudo用户切换过去的,所以下面的文件加上了sudo的配置。

[all:vars]
ansible_ssh_user=dba        # ssh用户
ansible_ssh_pass=xxxx       # ssh用户的密码,配置了key可以不用
ansible_become=true         # 执行sudo
ansible_become_pass=xxxxx   # sudo切换的密码,配置了免密可以不用

[testgroup]
10.192.168.101
10.192.168.137 ansible_ssh_port=9528
  • 传送rpm文件至目标库
# /tmp/host为host文件位置,testgroup为主机组名称
ansible -i /tmp/host testgroup -m copy -a "src=polkit-0.112-26.0.1.el7_9.1.x86_64.rpm dest=/tmp/"
  • 更新rpm文件
ansible -i /tmp/host testgroup -m shell -a "cd /tmp; rpm -Uvh polkit-0.112-26.0.1.el7_9.1.x86_64.rpm"

三、 备份原文件,发送新文件

主要场景:批量修改服务器配置文件、监控脚本等

  • 编辑host文件(任意位置均可)

vi /tmp/host

[all:vars]
ansible_ssh_user=dba        # ssh用户
ansible_ssh_pass=xxxx       # ssh用户的密码,配置了key可以不用
ansible_become=true         # 执行sudo
ansible_become_pass=xxxxx   # sudo切换的密码,配置了免密可以不用

[testgroup]
10.192.168.101
10.192.168.137 ansible_ssh_port=9528
  • 备份旧文件
ansible -i /tmp/host testgroup -m shell -a "cd /etc/zabbix/zabbix_agentd.d/zabora/sql/; cp db_enqueue_count.sql db_enqueue_count.sql.bak0802"
  • 传送新文件至各服务器
ansible -i /tmp/host testgroup -m copy -a "src=db_enqueue_count.sql dest=/etc/zabbix/zabbix_agentd.d/zabora/sql/"

当然还可以再传个小脚本验证下配置有没成功

四、sql 与 shell 脚本执行

主要场景:批量设置Oracle、pg 数据库参数、创建用户、执行shell脚本等等

  • 编辑host文件(任意位置均可)

vi /tmp/host

       因为是改数据库参数,这里我们需要用oracle用户,但是没有oracle用户的密码(也可能每个服务器上密码是不一样的)。所以需要:dba用户 -> sudo切换到root -> 切换到oracle

[all:vars]
ansible_ssh_user=dba        # ssh用户
ansible_ssh_pass=xxxx       # ssh用户的密码,配置了key可以不用
ansible_become=true         # 执行sudo
ansible_become_pass=xxxxx   # sudo切换的密码,配置了免密可以不用
ansible_become_user=oracle  # 再切换到oracle用户

[testgroup]
10.192.168.101
10.192.168.137 ansible_ssh_port=9528
  • 准备修改脚本

vi setParams.sh

#!/bin/bash

source ~/.bash_profile
sqlplus -S / as sysdba << EOF
set heading off feedback off pagesize 0 verify off echo off

Alter system set "_optimizer_use_feedback" = FALSE;
Alter system set "_optimizer_gather_feedback" = FALSE;
EOF

chmod +x setParams.sh

  • 传送脚本并执行

script命令 = 传送+执行+删除脚本,一步到位  

ansible -i /tmp/host testgroup -m script -a "setParams.sh"

更多场景,等待发现...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值