SA工具核心

sa-tools-core的Python项目详细描述


SA工具核心

系统管理员、系统管理员、dns、dns。.

安装

pip install sa-tools-core

开发指南

目前支持python2.7~python3.7

快速启动

# first clone this repo
cd sa-tools-core

make init

有关详细信息,请参见makefile。

修改代码后重新安装

make install

配置

cp local_config.py.example local_config.py
# then edit local_config.py
vi local_config.py

您也可以使用系统范围的配置路径,默认情况下为/etc/sa-tools/config.py

本地配置将重写sa_tools_core/consts.py

有关其他第三方服务配置,请参见examples/config

您可以将第三方服务配置放入/etc/sa-tools/目录。

命令行工具

对于所有的cli工具,您可以键入-h--help来获取帮助消息和示例。

SA通知

通知醒具、支持微信、WEWORK(企业微信)、电子邮件、短信、PushBullet、PushOver、电报

sa-notify --wechat user1 --content 'xxx'echo'xxx'| sa-notify --wechat user1,user2 --email user1@example.com user3@example.com

sa dns

域名系统

# 切 A 记录
sa-dns ensure main --type A --value 1.1.1.1 --enable
# dry-run
sa-dns ensure main --type A --value 1.1.1.1 --enable --dry-run
# 切 A 记录,独占
sa-dns ensure main --type A --value 1.1.1.1 --enable --excl
# 调整 ttl
sa-dns ensure main --type A --value 1.1.1.1 --ttl 100 --enable
# 批量切 CNAME 记录,常用于 CNAME 到 CDN 等操作
sa-dns ensure main --type CNAME --value {domain}.h1.aqb.so. --enable

# 查找子域记录
sa-dns list -S music
# 查找 aqb 相关记录(只返回符合该关键字的记录)
sa-dns list -s aqb
# 按正则查找子域(查看 aqb 的测试域名)
sa-dns list | grep -E '^.*aqb\s'# 支持通过 -d,--domain 指定其他域名
sa-dns -d dou.bz list

see more

SA脚本

基于ansible的远程脚本运行工具。要使用它,您需要先准备好您的ansible环境。

负责人、事件负责人(/etc/ansible/hosts)。

一、正切

  • 兼容易位寄主模式
  • 编辑编辑
  • 卢克,壳牌公司
$ echo'uptime && echo $HOSTNAME $(whoami)'| sa-script test_zk
Executing...
100%|######################################################|Elapsed Time: 0:00:09

+----------+----+-------------------------------------------------------+--------+
| host     | rc | stdout                                                | stderr |
+----------+----+-------------------------------------------------------+--------+
| test-zk3 |0|11:40:15 up 384 days, 19:00,  1 user,  load average: |||||0.16, 0.20, 0.26 test-zk3 user1                       ||| test-zk2 |0|11:40:15 up 392 days, 20:00,  1 user,  load average: |||||0.25, 0.22, 0.30 test-zk2 user1                       ||| test-zk1 |0|11:40:15 up 392 days, 23:53,  1 user,  load average: |||||0.30, 0.22, 0.25 test-zk1 user1                       ||
+----------+----+-------------------------------------------------------+--------+

有关详细信息,请参见sa-script -h

待办事项:添加gif演示。

SA访问

访问日志、承包商

sa-access query
sa-access query --term ip 1.1.1.1
sa-access query -t host example.com -x bandwidth --by ip
sa-access query --term appname app1 -x count --by-script "doc['remote_addr'].value + ' ' + doc['normalize_url'].value"
sa-access query --term appname app1 -x count --by-script "def ip=doc['remote_addr'].value; ip.substring(0, ip.lastIndexOf('.')) + ' ' + doc['normalize_url'].value"
sa-access analyze --term host example.com -x sum bytes_sent --by nurl -a '2017-03-28 09:30' -d 15 -b '2017-03-28 10:30'

see more

萨伊辛加

一、项目进展情况。

ICinga2文档:http://docs.icinga.org/icinga2/latest/doc/module/icinga2/toc

# try test
sa-icinga notify --wechat user1 --email user1@example.com --test

sa-icinga notify --wechat user1 --email user1@example.com  # need icinga pass os environment vars

sa-icinga ack --host sa --service check-puppet --comment 'hehe'
sa-icinga ack --host 'sa*' --service 'check-puppet'
sa-icinga ack --host 'sa*' --service 'check-puppet' --remove

sa-icinga show --filter 'host.name == "sa" && service.name == "check-puppet"'
sa-icinga show --type host --filter 'match("sa*", host.name)'| less
sa-icinga show --type service --filter 'regex("check_[a-z]*", service.name)'| less
sa-icinga show --type notification --filter 'notification.host_name == "sa"'| less
sa-icinga show --type user | grep user1
sa-icinga show --filter 'service.name == "check-puppet"' --attrs acknowledgement

see more

SA盘

《独立式、独立式、独立式》

sa-disk usage
sa-disk usage -n 5 -d 3
sa-disk usage -r /data1/ncdu-export-%-20160513142844.gz
sa-disk usage -c /tmp
sa-disk usage -p /data
sa-disk usage --force-check

sa-disk clean

see more

sa bs

sa-bs

sa-bs device list -j
sa-bs device list -a alias
sa-bs device list --alias host
sa-bs vpc list -e createTime vpcId
sa-bs vpc subnet
sa-bs vpc subnet_ips --vpcId 1001 --subnetId 6555 -j
sa-bs vpc subnet_ips --subnetName SA
sa-bs vpc subnet_by_cpm_id --alias host22
sa-bs eip list -a eip
sa-bs lb list
sa-bs -vvvv eip list --eipIds '[\\"eip-xxxxxxxx\\"]' -r
sa-bs eip list --eip 1.1.1.1
sa-bs vpc register_batch_ip --subnetName SA --ip 10.0.0.1
sa-bs eip apply
sa-bs eip bind_vpc_ip --eip 1.1.1.1 --vpcIp 10.0.0.1
sa-bs vpc create_interface --alias host11 host22 --subnetName DBA-dummy
sa-bs device reload_os --passwd XXXXXX --subnetName OfflineComputation --alias host88
sa-bs device modify_alias --alias host33 --instanceId cpm-xxxxxxxx
sa-bs -vvvv vpc create_subnet --subnetName Isolation-dummy --cidrBlock 10.0.1.0/24 --vlanId 2222## 机型组合
sa-bs device list -e deviceClassCode
sa-bs device os --deviceClassCode Y0-BS09v2 -a osNameDisplay osTypeId
sa-bs device class_partition --cpuId 4 --diskNum1 2 --diskNum2 12 --diskTypeId1 1 --diskTypeId2 6 --haveRaidCard 0 --mem 64 --deviceClassCode "Y0-BS09v2"
sa-bs device class_partition --cpuId 4 --diskNum1 2 --diskNum2 12 --diskTypeId1 1 --diskTypeId2 6 --haveRaidCard 0 --mem 64
sa-bs device elastic_price --cpuId 4 --diskNum1 2 --diskNum2 12 --diskTypeId1 1 --diskTypeId2 6 --haveRaidCard 0 --mem 64
sa-bs device inventory --cpuId 4 --diskNum1 2 --diskNum2 12 --diskTypeId1 1 --diskTypeId2 6 --haveRaidCard 0 --mem 64 --deviceClassCode "Y0-BS09v2" --subnetName OfflineComputation
sa-bs device hardware_info --alias host11
sa-bs device hardware_specification

### 购买机器 ( see https://cloud.tencent.com/document/api/386/6638 )
sa-bs device buy --goodsNum 2 --timeSpan 1 --timeUnit m --alias new_host \
  --subnetName SA --ip 10.0.0.2 10.0.0.3 \
  --cpuId 4 --diskNum1 2 --diskNum2 12 --diskTypeId1 1 --diskTypeId2 6 --haveRaidCard 0 --mem 64\
  --raidId 25\
  --deviceClassCode "Y0-BS09v2" --needSecurityAgent 0 --needMonitorAgent 0 --autoRenewFlag 1
sa-bs device deploy_process --instanceId cpm-xxxxxxxx
sa-bs device deploy_process --alias host11
sa-bs device operation_log --alias host22

## CVM

sa-bs cvm instances

客户机

也可以从客户端调用工具。

fromsa_tools_core.clientimportClientc=Client()c.notify(wework='user1',content='hehe')c.uptime()c.dns.list(S='@')

有关详细信息,请参见sa_tools_core/client.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Android上的可访问文件夹中创建文件?(非根)   tomcat Unix脚本未使用Process Runtime在Java中运行   模拟器中的java Android AudioTrack速度异常   java是否创建具有特定@ConditionalOnProperty的注释?   java如何使用json数据从gridview中的URL加载图像?(类别和子类别)   ConcurrentHashMap的java锁定值对象   如何在具有额外属性的Java枚举上执行Javadoc?   java如何修复SocketException连接重置问题?   无附加表的java JPA实体继承   java Android应用程序在启动屏幕后崩溃   java如何将Arraylist保存到文件?   java restTemplate从restfull Web服务获取文件数组   java活动带布局隐藏导航栏   socket未接收任何内容的java BufferedReader