1、安装。
salt是用python写的,安装过程中会安装好多python的包。
master端:
yum install salt-master
slave端:
yum install salt-minion
配置:
master端:
搜索file_root去掉注释
[root@server1 ~]# vim /etc/salt/master
----
file_roots:
base:
- /srv/salt/
----
[root@server1 ~]# /etc/init.d/salt-master start
[root@server1 ~]# mkdir /srv/salt -p
slave端:
[root@server2 ~]# vim /etc/salt/minion
----
master: 172.25.5.1
----
[root@server2 ~]# /etc/init.d/salt-minion start
[root@server1 ~]# salt-key -L
Accepted Keys:
server1
server2
server3
server4
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[root@server1 ~]#
[root@server1 ~]# salt-key -A
[root@server1 ~]# salt-key -a server2
[root@server1 ~]# salt '*' test.ping
server3:
True
server4:
True
server2:
True
server1:
True
[root@server1 ~]#
用salt推送一个nginx(源码安装)
[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# tree nginx/
nginx/
├── file
│ ├── index.html #默认发布文件
│ ├── nginx #启动脚本
│ ├── nginx-1.8.1.tar.gz #安装源码包
│ └── nginx.conf #配置文件
├── install.sls #安装脚本
└── service.sls #服务脚本
1 directory, 6 files
[root@server1 salt]#
install.sls文件
[root@server1 salt]# vim nginx/install.sls
-----
nginx-install:
pkg.installed:
- pkgs:
- pcre-devel
- openssl-devel
- gcc
file.managed:
- name: /root/nginx-1.8.1.tar.gz
- source: salt://nginx/file/nginx-1.8.1.tar.gz
cmd.run:
- name: cd /root && tar zxf nginx-1.8.1.tar.gz && cd nginx-1.8.1 && sed -i.bak 's/#define NGINX_VER "nginx\/" NGINX_VERSION/#define NGINX_VER "nginx"/g' ./src/core/nginx.h && sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' ./auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio &> /dev/null && make &>/dev/null && make install &>/dev/null
- creates: /usr/local/nginx/
service.sls文件
[root@server1 salt]# vim nginx/service.sls
----
include:
- nginx.install
/usr/local/nginx/conf/nginx.conf:
file.managed:
- source: salt://nginx/file/nginx.conf
nginx-service:
file.managed:
- name: /etc/init.d/nginx
- source: salt://nginx/file/nginx
- mode: 755
service.running:
- name: nginx
- reload: True
- watch:
- file: /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/html/index.html:
file.managed:
- source: salt://nginx/file/index.html
运行:
[root@server1 salt]# salt server2 state.sls nginx.service
也可以直接推送出负载均衡集群的,代码不较多,就不贴了。方法都是类似的。