今天和大家介绍一下如何运用State初始化系统吧

  States是satlstack中的配置语言
  安装软件包、管理配置文件都需要编写一些states sls文件

  states sls使用YAML语法


  查看所有states列表
[root@vh01    pillar]#    salt 'onde1' sys.list_state_modules    (node1是被管理节点的ID)


  查看states模块功能
[root@vh01    pillar]#    salt 'node1' sys.list_state_func=ons    file    


下面给大家具体实例操作一下吧

1.  配置minion的dns服务器地址为192.168.4.100
2.  配置历史命令显示时间和用户
3.  配置系统能够实现ip转发
4.  配置系统创建用户bob,初始密码为123456,同时要求用户初次登陆必须修改密码

系统初始化概述
  服务器上架并安装好操作系统后,都会有一些基础的配置操作
  建议将所有服务器都会涉及的基础配置或者软件部署都归类放在base环境下
  可以在base环境下创建一个init目录,将系统初始化配置的sls文件均放到init目录下,称其为“初始化模块”


实施步骤:

修改master上的/etc/salt/master配置文件:

 593 # Example:
 594 file_roots:
 595   base:
 596     - /srv/salt/base


1、配置DNS
  强烈建议在内网建立自己的内网DNS服务器

[root@sa01 init]# vim dns.sls
resolv_file:
  file.managed:
    - name: /etc/resolv.conf
    - source: salt://init/files/resolv.conf
    - user: root
    - group: root
    - mode: 644


resolv.conf文件路径是/srv/salt/base/resolv.conf



2、配置历史命令显示时间:
[root@sa01 init]# vim history.sls
profile_file:
  file.append:
    - name: /etc/profile
    - text:
      - export HISTTIMEFORMAT="%F %T:"

3、配置系统能够实现ip转发(路由转发):
[root@sa01 init]# cat sysctl.sls
net.ipv4.ip_forward:
  sysctl.present:
    - value: 1

4、配置系统创建用户bob,初始密码为123456,同时要求用户初次登陆必须修改密码
[root@sa01 init]# vim add_usr.sls
useradd bob:
  cmd.run:
    - unless: id bob
echo 123456 | passwd --stdin bob:
  cmd.run:
    - onlyif: id bob
chage -d0 bob:
  cmd.run:
    - onlyif: id bob

5、修改入口文件:
[root@sa01 base]# vim top.sls
base:
  'E@node[12]':
    - init.dns
    - init.history
    - init.sysctl
    - init.add_usr

[root@sa01 base]# salt -E 'node[12]' state.highstate env=base test  (测试是否能执行成功。)

[root@sa01 base]# salt -E 'node[12]' state.highstate env=base (执行修改,saltenv=base指环境是base,不是dev)

6、验证:ssh到节点上去,验证以下就行了,或者使用salt的命令去查看,此处省略!!!