saltstack实战实例

1.批量将命令alias

alias_ps_java_mappice:

cmd.run:

- name: echo -e ‘\nalias hpsm="ps -ef | grep MappIce | egrep -v grep"\nalias hpsj="ps -ef | grep java | egrep -v grep"‘ >> /etc/profile

2.file.append,增加删除日志的命令

/home/shell/cron_clear_file.sh:

file.append:

- text:

- find /home -path ‘/home/nfsdata/*‘ -prune -o -type d \( -name "logs" -o -name "mylogs" \) -exec find {} -type f -mtime +1 -name "*log*" ! -name "*.gz" \;| xargs gzip

- find /home -path ‘/home/nfsdata/*‘ -prune -o -type d \( -name "logs" -o -name "mylogs" \) -exec find {} -type f -mtime +180 -name "*.gz" \;| xargs rm -f

- find /var/log/ -type f -name "*log.*" -mtime +1 ! -name "*.gz" | xargs gzip

- find /var/log/ -type f -name "*.gz" -mtime +180 | xargs rm -f

- cd /var/log/nginx/ && for i in `ls -l /var/log/nginx/*.log | grep -v total | awk ‘{print $NF}‘ | awk -F‘/‘ ‘{print $NF}‘`;do /bin/tar czvf ${i}.$(date +%F).tar.gz $i ; echo "" > ${i} ;done

- find /var/log/nginx -type f -name "*.gz" -mtime +90 | xargs rm -f

3.更新jar包、目录、配置文件,重启java进程

/home/www/pl-service/lib:

file.recurse:

-source: salt://shangxian/lib.liyan

-include_empty: True

/home/www/pl-service/conf/hessian.properties:

file.managed:

-source: salt://shangxian/hessian.properties.liyan

-user: nginx

-group: nginx

-mode: 644

/home/www/pl-service/lib/pl-service-0.0.2-release.jar:

file.managed:

-source: salt://shangxian/pl-service-0.0.2-release.jar

-user: nginx

-group: nginx

-mode: 644

start-pl-service:

cmd.run:

-name: cp /home/www/pl-service/lib/pl-service-0.0.2-release.jar/home/nginx/backfile/pl-service-0.0.2-release.jar.$(date +%F%T) && su -nginx -c "kill -9 `ps -ef | grep pl-service | grep -v grep | awk ‘{print$2}‘` && sleep 7 && sh /home/www/pl-service/bin/start.sh&& ps -ef | grep pl-service | grep -v grep"

-require:

- file: /home/www/pl-service/lib/pl-service-0.0.2-release.jar

4.部署java、tomcat、maven

web-dir:

cmd.run:

-name: mkdir -p /home/web/

-unless: test -d /home/web/

/usr/local/apache-maven-3.0.5.tar.gz:

file.managed:

-source: salt://jdk_mav_tom/apache-maven-3.0.5.tar.gz

-user: root

-group: root

-mode: 644

/home/web/apache-tomcat-7.0.64.tar.gz:

file.managed:

-source: salt://jdk_mav_tom/apache-tomcat-7.0.64.tar.gz

-user: root

-group: root

-mode: 644

-require:

-cmd: web-dir

/usr/local/java.tar.gz:

file.managed:

-source: salt://jdk_mav_tom/java.tar.gz

-user: root

-group: root

-mode: 644

tar-xf:

cmd.run:

-name: tar xf /usr/local/apache-maven-3.0.5.tar.gz -C /usr/local/ && tarxf /usr/local/java.tar.gz -C /usr/local/ && tar xf/home/web/apache-tomcat-7.0.64.tar.gz -C /home/web/ && chown -Rnginx.nginx /usr/local/apache-maven-3.0.5 && chown -R nginx.nginx/usr/local/java && chown -R nginx.nginx /home/web/

-require:

- file: /usr/local/apache-maven-3.0.5.tar.gz

- file: /home/web/apache-tomcat-7.0.64.tar.gz

- file: /usr/local/java.tar.gz

avg-profile:

cmd.run:

-name: echo -e ‘export JAVA_HOME=/usr/local/java\nexportPATH=$JAVA_HOME/bin:$PATH\nexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nexportPATH=/usr/local/apache-maven-3.0.5/bin:$PATH\n‘ >> /etc/profile

-unless: egrep ‘JAVA_HOME|maven‘ /etc/profile

5.部署删除日志通用脚本

###创建文件夹

/home/shell:

cmd.run:

-name: mkdir -p /home/shell

-unless: test -d /home/shell

- order: 1

###将脚本同步到minion端

/home/shell/cron_file_union.sh:

file.managed:

-source: salt://shangxian/cron_file_union.sh

-user: root

-group: root

-mode: 644

-require:

- cmd: /home/shell

###写定时任务

/bin/sh /home/shell/cron_file_union.sh>/dev/null 2>&1:

cron.present:

-user: root

-minute: 00

- hour: 02

cron_file_union.sh的内容见下:

#!/bin/bash

###delete /home/..logs or /home/..mylogs delog

find /home -path ‘/home/nfsdata/*‘ -prune-o -type d \( -name "logs" -o -name "mylogs" \) -exec find{} -type f -mtime +1 -name "*log.*" ! -name "*.gz" \;|xargs gzip

find /home -path ‘/home/nfsdata/*‘ -prune-o -type d \( -name "logs" -o -name "mylogs" \) -exec find{} -type f -mtime +180 -name "*.gz" \;| xargs rm -f

###delete /var/log de log   ,eg:/var/log/nginx/gogo.log.fso

find /var/log/ -type f -name"*log.*" -mtime +1 ! -name "*.gz" | xargs gzip

find /var/log/ -type f -name "*.gz"-mtime +180 | xargs rm -f

###delete /home/../logs/stdout.log or/home/.../logs/catalina.out

for i in `find /home -path‘/home/nfsdata/*‘ -prune -o -type d \( -name "logs" -o -name"mylogs" \) -exec find {} -type f \( -name "*.log" -o -name"catalina.out" \) -size +100M \; | xargs ls`

do

/bin/tar czf ${i}.$(date +%F).ThisIsATag.tar.gz ${i}

echo "" > ${i}

done

find /home -path ‘/home/nfsdata/*‘ -prune-o -type d \( -name "logs" -o -name "mylogs" \) -exec find{} -type f -mtime +7 -name "*.ThisIsATag.tar.gz" \;| xargs rm -f

### delete ,like /var/log/nginx/www.log

cd /var/log/nginx/ && for i in `ls-l /var/log/nginx/*.log | grep -v total | awk ‘{print $NF}‘ | awk -F‘/‘ ‘{print$NF}‘`;do /bin/tar czf ${i}.$(date +%F).tar.gz $i ; echo "" > ${i};done

find /var/log/nginx -type f -name"*.gz" -mtime +180 | xargs rm -f

6.清除听云日志脚本

/home/shell:

file.directory:

-user: nginx

-group: nginx

-mode: 755

-makedirs: True

tingyun_crontab:

file.managed:

-name: /home/shell/cron_clear_tingyun_log.sh

-source: salt://tingyun/cron_clear_tingyun_log.sh

/bin/sh/home/shell/cron_clear_tingyun_log.sh >/dev/null 2>&1:

cron.present:

-user: root

-minute: 00

- hour: 02

cron_clear_tingyun_log.sh内容:

#!/bin/bash

cd /home && find `ls /home | grep-v ‘.*nfs.*‘` -type d -name ‘axis2-tmp-*.tmp‘ | xargs rm -rf

时间: 2024-10-19 23:05:30

saltstack实战实例的相关文章

  Saltstack实战

一:saltstack简介 部署的工作,不能只用手来做了,我们需要用工具来完成,工具化和标准化是相辅相成的,工具化让线上运行的东西更标准 Saltstack是比较新的自动化工具,是python开发的,也提供了api,saltstack有三大功能,远程执行,配置管理和云管理,配置管理也可以叫做状态管理,运维三板斧,监控,执行,配置 Saltstack对不,Puppet是ruby写的不支持远程执行  ansible 也是python写的.Saltstack的官方网站就是saltstack.com 运

Selenium2学习-007-WebUI自动化实战实例-005-解决 Firefox 版本不兼容:org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary

此文主要讲述 Java 运行 Selenium 脚本时,因 Friefox 浏览器版本与 selenium-server-standalone-x.xx.x.jar 不兼容引起的 org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary 报错解决方法. 希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! 之前给朋友初步介绍了 S

Selenium2学习-004-WebUI自动化实战实例-002-百度登录

此文主要通过 百度登录 功能,进行 Selenium2 的实战实例讲解.文中所附源代码于 2015-01-17 23:33 亲测通过,敬请亲们阅览.同时,您也可参考此文进行其他网站(例如 京东.易迅.天猫等)的登录(一般登录流程基本相同,若需填写验证码,因目前验证码识别不方便,初始学习时可让脚本运行到添加验证码时人工输入.在单位进行此部分的自动化脚本编写时,最好取得开发的支持使用万能验证码,方便脚本编写),进行编写登录自动化测试脚本,若您直接使用此文所附的源代码运行测试,则需要将文中 账户名和密

Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)

此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkText.tagName 的实战实例源代码演示 Selenium 元素定位的 8 种方法,源代码测试通过日期为:2015-01-26 00:18,请知悉.注意:其中通过 tagName 定位元素时,返回的是一个 WebElement 的数组,需要根据实际的测试需求对其进行进一步的处理. 希望能对初学 S

Selenium2学习-003-Selenium2 WebUI自动化实战实例-001-百度搜索

此文主要通过百度搜索功能,进行 Selenium2 的实战实例讲解,文中所附源代码于 2015-01-16 02:01 亲测通过,敬请亲们阅览.希望能对初学 Selenium2 UI 自动化测试编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! 脚本实现功能步骤如下所示: 启动 Chrome 浏览器 打开百度网址:www.baidu.com 输入搜索项:范丰平 博客园 获取搜索结果的第一项,并打开 关闭 Chrome 浏览器(为显示打开效果,已将此项注释) 夜已深了,鬼话少述,直接上源代

Selenium2学习-034-WebUI自动化实战实例-032-页面快照截图应用之三 -- 区域截图(专业版)

之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无法满足,那么该如何操作呢? 刷新页面,相当于页面归位操作 判断要截取的区域范围与当前浏览器显示区域大小关系,若截取范围大于显示区域,则重置浏览器窗口大小 模拟鼠标操作滚动屏幕,使需要截取的区域显示到浏览器窗口 重新计算截取起始位置相对于当前显示区域的坐标 调用之前的截图方法截图 下面就以获取易迅网首

Selenium2学习-039-WebUI自动化实战实例-文件上传下载

通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a或其他方式结合实现). 非input标签类因其有各式各样的实现方式,需要考虑具体的场景,因而此文对此类文件上传不做讲解,以input标签实现文件上传的方式进行讲解,请知悉! 解决方案有如下三种: 1.定位元素直接通过sendkeys修改input标签的文件链接: 2.通过第三方控件(AutoIt)编

Selenium2学习-016-WebUI自动化实战实例-014-Selenium 窗口选择

在日常的 WebUI 自动化测试脚本编写过程中,经常需要打开新的页面,或者在多个打开的页面之间进行切换,以对页面元素进行相应的操作,以模拟用户的行为,实现 UI 的自动化测试.在过往的时间中,经常有初学 Selenium(webdriver) 的朋友问及如何选择窗口的问题,其实 Selenium 已经给我们提供的了相应的方法去解决这个问题.解决思路如下: 1.通过 webdriver.getWindowHandles() 获取所有已打开窗口的信息 Set<String> 2.遍历上述信息,并切

Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本

此文主要通过 三种浏览器(Chrome.Firefox.IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解.文中所附源代码于 2015-01-18 20:33 亲测通过,敬请亲们阅览.进行编写登录自动化测试脚本,若您直接使用此文所附的源代码运行测试,则需要修改对应 浏览器 或 webdriver 的路径,否则将会引起相应的报错,请知悉. 希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! 一.各浏览器