saltstack-安装笔记(4)

来源:互联网 发布:创建触发器 sql 编辑:程序博客网 时间:2024/06/05 06:46

saltstack目录结构


mkdir -p salt/pillar

mkdir -p salt/states


pillar文件夹

touch top.sls global.sls

cat > top.sls <<EOF

test:

  '*':

    - global

EOF


cat > global.sls <<EOF

name:{{name}}

pwd:{{passwd}}

mode:{{mode}}

mysql_ip:{{mysql_ip}}

mysql_port:{{mysql_port}}

EOF


global.sls 文件中的值通过jinja2 刷入


states文件夹

touch top.sls 

mkdir -p  demo/packages

touch demo/init.sls  demo/do.sls

cat > top.sls <<EOF

test:

  '*':

    - demo

EOF


cat > demo/init.sls <<EOF

include:
  - .do

EOF


cat > demo/do.sls <<EOF

config.ini:
  file.managed:
    - name:  /remote_dir/config.ini
    - source: salt://tmp/config.ini
    - template: jinja
    - context:
      name: {{pillar['name']}}
      {% if pillar['mode'] == "pre" %}
      debug: "true"
      {% else %}
      debug: "false"
      {% endif %}
    - makedirs: true
    - mode: 600

cmd_run:
  cmd.run:
    - name: '/bin/bash run.sh'
    - cwd: /remote_dir/config/


cmd_run_env:
  cmd.run:
    - name: '/bin/bash run.sh'
    - cwd: /remote_dir/config/
    - env:
      - install_mode: {{ pillar['mode'] }}
      - mysql_ip : {{ pillar['mysql_ip'] }}
      - mysql_port: '{{ pillar['mysql_port'] }}'

cmd_run_no_dir:
  cmd.run:
    - name: /usr/sbin/ifconfig
    
dir:
  file.directory:
    - name: /remote_dir/config
    - makedirs: True
    - mode: 750

dirs:
  file.recurse:
    - name: /remote_dir/jobs
    - source: salt://tmp/dirs
    - include_empty: True
    - file_mode: 640
    - dir_mode: 750
    
tgz:
  archive.extracted:
    - name: /remote_dir/test
    - source: salt://package/{{pillar['version']}}/test.tgz
    - archive_format: tar
    - tar_options: v
    - if_missing: /remote_dir/test

EOF


salt-master 配置

vim /etc/salt/master.d/master.conf

将涉及的目录都添加到配置文件中,saltstack根据该配置查找目录文件

  1. file_roots:  
  2.     test:  
  3.       - /salt/states
  4.       - /salt
  5.       - /tmp
  6. pillar_roots:  
  7.     test:  
  8.       - /salt/pillar

启动安装命令(master同步到minion)

salt -t 1500 $salt-key-value state.highstate saltenv=test