SaltStack之项目实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack之项目实践相关的知识,希望对你有一定的参考价值。

在实际生产项目中,我们可以来这样划分:

业务模块:根据具体的业务引用需要用到的功能模块(比如搭建LNMP环境)

功能模块:按照功能创建目录,里面对应的功能状态(比如zabbix,mysql,nginx,redis等等)

系统初始化模块:把它放在base环境下,这是我们定义每台机器都要执行的操作

 

我们来演示如何配置系统初始化模块,这里只是举例如何使用,具体的系统初始化工作可以根据自己的实际情况配置

base环境

[[email protected] ~]# cd /srv/salt/base/;ls
init  #这个是目录,用来存放系统初始化的状态
top.sls


1.dns配置
[[email protected] base]# cat init/dns.sls 
/etc/resolv.conf:
  file.managed:
    - source: salt://init/files/resolv.conf
    - user: root
    - group: root
    - mode: 644

[[email protected] base]# mkdir init/files

[[email protected] base]# cat init/files/resolv.conf     
nameserver 114.114.114.114


2、history记录命令执行时间
[[email protected] base]# cat init/history.sls 
/etc/profile:
  file.append:   <---------文件追加
    - text:      <---------下面是追加的内容
      - export HISTTIMEFORMAT="%F %T `whoami`"


3、内核调优
[[email protected] base]# cat init/sysctl.sls 
vm.swappiness:
  sysctl.present:
    - value: 0

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

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

我们可以再写个sls把以上的都包含进去,取个自己理解的名字,这样topfile就避免填写所有的状态

[[email protected] base]# cat init/env_init.sls
include:
  - init.dns
  - init.history
  - init.sysctl


topfile只要写env_init.sls这一个就可以了
[[email protected] base]# cat /srv/salt/base/top.sls
base:
  ‘*‘:
    - init.env_init

写完,我们需要测试。test=True,这个参数就是用来模拟测试,不会实际应用

salt ‘*‘ state.highstate test=True

测试OK,我们就可以真正的运行

salt ‘*‘ state.highstate 

  

 

以上是关于SaltStack之项目实践的主要内容,如果未能解决你的问题,请参考以下文章

SaltStack部署及使用实践

Saltstack之Grains组件

<Docker + Bamboo + Saltstack持续集最佳实践 > 本周三晚在线公开课

自动化运维Saltstack系列之States配置管理和jinja模板的使用

《SaltStack技术入门与实践》—— Grains

运维工具之saltstack