salt的目录结构
[root@linux-node1 salt]# tree
.
├── base
│ ├── init
│ │ ├── files
│ │ │ ├── epel-6.repo
│ │ │ └── yum-repo.sls
│ │ └── pkg-base.sls
│ ├── logstash
│ ├── top.sls
│ ├── web
│ │ ├── apache.sls
│ │ ├── append.sls
│ │ ├── files
│ │ │ ├── apache-conf.d
│ │ │ │ ├── hehe
│ │ │ │ ├── php.conf
│ │ │ │ ├── README
│ │ │ │ └── welcome.conf
│ │ │ ├── apache-tomcat-8.0.46.tar.gz
│ │ │ ├── httpd.conf
│ │ │ └── php.ini
│ │ ├── lamp.sls
│ │ └── tomcat.sls
│ └── zabbix
│ ├── files
│ │ └── zabbix_agentd.conf
│ └── zabbix-agent.sls
├── dev
├── prod
│ ├── apache
│ │ └── files
│ ├── modules
│ │ ├── appache
│ │ ├── haproxy
│ │ ├── keepalived
│ │ ├── mysql
│ │ └── redis
│ │ └── redis-install.sls
│ ├── mysql
│ │ └── files
│ ├── php
│ │ └── files
│ └── redis-cluster
│ ├── files
│ │ └── redis-master.conf
│ └── redis-master.sls
└── test
编写基础软件包管理
[root@linux-node1 init]# vim pkg-base.sls
include:
- init.yum-repo ---已经编写好的yum源,可以见上篇文件
base-pkg:
pkg.installed
- pkgs:
- screen
- lrzsz
目录规划
[root@linux-node1 prod]# mkdir -p modules/{appache,haproxy,keepalived,mysql,redis}
[root@linux-node1 prod]# cd modules/
[root@linux-node1 modules]# cd redis/
[root@linux-node1 redis-cluster]# mkdir files
编写单点redis模块
[root@linux-node1 redis]# vim redis-install.sls
redis-install:
pkg.installed:
- name: redis
编写redis集群模块
[root@linux-node1 redis-cluster]# vim redis-master.sls
include:
- modules.redis.redis-install
redis-master-config:
file.managed:
- name: /etc/redis.conf
- source: salt:// redis-cluster/files/redis-master.conf ---文件要是先准备好
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
REDIS_MEM: 100M
redis-master-service:
service.running:
- name: redis
- enable: True
- watch
- file: redis-master-config
准备redis配置文件
[root@linux-node1 redis-cluster]# cp /etc/redis.conf /srv/salt/prod/redis-cluster/
[root@linux-node1 redis-cluster]# mv redis.conf files/
[root@linux-node1 files]# mv redis.conf redis-master.conf
修改配置文件(这里指的是source: salt:// redis-cluster/files/redis-master.conf )
[root@linux-node1 files]# vim redis-master.conf
bind 0.0.0.0 61行
daemonize yes 128行
maxmemory {{ REDIS_MEM }} 537行
测试:
[root@linux-node1 redis-cluster]# salt ‘linux-node2*’ state.sls redis-cluster.redis-master test=True saltenv=prod -saltenv=prod指定环境
没有问题就可以执行了
[root@linux-node1 redis-cluster]# salt ‘linux-node2*’ state.sls redis-cluster.redis-master saltenv=pro
到测试机器上去测试:
[root@linux-node2 etc]# netstat –ntlp
[root@linux-node1 files]# redis-cli -h 10.0.0.16
10.0.0.16:6379>
成功