针对目前公司的saltsatck脚本有几处需要优化的地方:
1.重复解压拷贝文件
如:
dir-java:
file.managed:
- name: /tmp/java.tar.gz
- source: salt://qunardev/cm/qdr/files/java.tar.gz
cmd.run:
- name: 'cd /tmp && tar -zxf java.tar.gz -C /&&rm -rf /tmp/java.tar.gz'
默认是每次执行salt脚本的时候都会执行,如果文件比较大的话就会影响性能,效率无法提高,是否能做到检查目标机是否已经存在(或TAR包有没有更新再选择是否推送呢)
2.重置启动docker容器
config_listener_compile:
cmd.run:
- name: 'docker run -d --name test --restart always test:1.0'
优化后:
config_listener_compile:
cmd.run:
- name: 'docker run -d --name test --restart always test:1.0'
- unless: docker inspect test
当检测到没有name为test的时候才执行;
3.根据机器环境来选择拷贝的配置文件并启动服务
/etc/init.d/qunar_deploy_logclient:
file.managed:
- source: salt://qunardev/cm/portal_app_deploy/files/qunar_deploy_logclient
- user: root
- group: root
- mode: 755
- template: jinja
- defaults:
HOST: {{"11111" }}
{% if ".beta." in grains['fqdn'] %}
- context:
HOST: {{ "22222" }}
{% endif %}
cmd.run:
- name: 'service qunar_deploy_logclient start'