设为首页 收藏本站
查看: 1293|回复: 0

[经验分享] saltstack常用模块

[复制链接]

尚未签到

发表于 2018-1-3 16:53:44 | 显示全部楼层 |阅读模式
  

salt.states.file.managed(name, source=None, source_hash='`, source_hash_name=None, user=None, group=None, mode=None, template=None, makedirs=False, dir_mode=None, context=None, replace=True, defaults=None, backup='`, show_changes=True, create=True, contents=None, tmp_ext='`, contents_pillar=None, contents_grains=None, contents_newline=True, contents_delimiter=':', encoding=None, encoding_errors='strict', allow_empty=True, follow_symlinks=True, check_cmd=None, skip_verify=False, win_owner=None, win_perms=None, win_deny_perms=None, win_inheritance=True, **kwargs)  

  

DSC0000.png

DSC0001.png

  file.managed:文件管理,多用于复制,如果没有就创建该文件
  

salt.states.file.append(name, text=None, makedirs=False, source=None, source_hash=None, template='jinja', sources=None, source_hashes=None, defaults=None, context=None, ignore_whitespace=True)   

  

append-memcache-php:  file.append:
  - name: /usr/local/php/etc/php.ini
  - text:
  - extension=memcache.so
  cmd.run:
  - name: /etc/init.d/php-fpm restart
  

  

  file.append:向某文件中添加内容text=内容,name为需要添加的文件
  

salt.states.file.directory(name, user=None, group=None, recurse=None, max_depth=None, dir_mode=None, file_mode=None, makedirs=False, clean=False, require=None, exclude_pat=None, follow_symlinks=False, force=False, backupname=None, allow_symlink=True, children_only=False, win_owner=None, win_perms=None, win_deny_perms=None, win_inheritance=True, **kwargs)  

  

  file.directory:创建一个文件目录
  

/etc/keepalived:  file.directory:
  - user: root
  - group: root
  - mode: 755
  

  

  4、跟系统服务相关:state.service
  

salt.states.service.running(name, enable=None, sig=None, init_delay=None, no_block=False, unmask=False, unmask_runtime=False, **kwargs)  

  

  service.running:开启系统某服务enable为添加到自启动,name表示该启动的服务名称
  

  service.running:  - name: nginx
  - enable: True

  ->  - require:
  - file: /etc/init.d/nginx
  - cmd: nginx-init
  - watch:
  - file: /usr/local/nginx/conf/nginx.conf
  

  

  5、跟系统内核相关的设置:
  

salt.states.sysctl.present(name, value, config=None) Ensurethatthenamedsysctlvalueissetinmemoryandpersistedtothenamedconfigurationfile. Thedefault sysctl configuration file is /etc/sysctl.conf name The name of the sysctl value to edit value The sysctl value to apply config Thelocationofthesysctlconfigurationfile. Ifnotspecified,theproperlocationwillbedetectedbased on platform.  

  

  sysctl.present:修改系统内核参数
  

[iyunv@node1 init]# cat sysctl.sls  
vm.swappiness:
  sysctl.present:
  - value: 0
  

  
net.ipv4.ip_local_port_range:
  sysctl.present:
  - value: 10000 61000
  

  
fs.file-max:
  sysctl.present:
  - value: 186981
  

  

  6、创建用户user和group用到的模块
  

www-user-group:  group.present:
  - name: www
  - gid: 1000
  

  user.present:
  - name: www
  - fullname: www
  - shell: /sbin/nologin
  - uid: 1000
  - gid: 1000
  

  

  7、状态配置中require、unless详解:
  

[iyunv@node1 base]# cat if_unless.sls  
getshell:
  file.managed:
  - name: /tmp/echo.sh
  - source: salt://init/files/echo.sh
  cmd.run:
  - name: /bin/bash /tmp/echo.sh
  - unless: test -f /tmp/if_unless.sh
  - require:
  - file: /tmp/echo.sh
  

  

  详解:

require:require要求下面的file必须事先经过了file.managed进行了设置,才能使用作为依赖条件
unless:测试tmp下面是否有if_unless.sh这个文件,如果测试成功有那么不会再执行,如果测试命令返回的code不是0那么才会执行
unless:一行表示,如果该文件存在,就不需要再执行name中的命令了(包如果安装了就需要再安装)
8、使用template: jinja来定义变量  

zabbix-agent-service:  file.managed:
  - name: /etc/zabbix/zabbix_agentd.conf
  - source: salt://init/files/zabbix_agentd.conf
  - template: jinja
  - defaults:
  Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}
  

  

  在该salt://init/files/zabbix_agentd.conf配置文件中将Server={{ Server }}引用上面定义的变量即可
  或者使用grains和pillar使用变量:
  

keepalived-service:  file.managed:
  - name: /etc/keepalived/keepalived.conf
  - source: salt://cluster/files/haproxy-outside-keepalived.conf
  - user: root
  - group: root
  - mode: 644
  - template: jinja
  {% if grains['fqdn'] == 'node1' %}
  - ROUTEID: haproxy_node1
  - STATEID: MASTER
  - PRIORITYID: 150
  {% elif grains['fqdn'] == 'node2' %}
  - ROUTEID: haproxy_node2
  - STATEID: BACKUP
  - PRIORITYID: 100
  {% endif %}
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431232-1-1.html 上篇帖子: SaltStack 安装配置 centos7 下篇帖子: SaltStack Char02 组件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表