您的位置:首页 > 运维架构

自动化运维平台saltstack的使用与搭建

2017-08-09 21:52 429 查看

saltstacks简介

saltstack是一个功能强大的自动化运维软件。

有三种模式

1)本地模式(local),不需要启动进程,只要配置文件就可以写出来

2)master minion 模式

3)代理模式(syndic)

4)ssh模式

我们本次主要使用的是master minion模式

master –> minion 模式:

master默认—->监听本地所有网络接口

长连接

发布订阅系统:4505端口

minion端只做订阅(pub推送、sub接收)

4506端口:专门用于接收minion端的返回值

saltstack工具的简单使用:

1.yum仓库的搭建:

vim /etc/yum.repos.d/rhel-source.repo


[rhel6.5]
name=Red Hat
baseurl=http://172.25.254.40/rhel6.5
gpgcheck=0
[salt]
name=salt
baseurl=ftp://172.25.254.250/pub/docs/saltstack/rhel6
gpgcheck=0


yum仓库中新增加的文件有

PyYAML-3.11-1.el6.x86_64.rpm
libyaml-0.1.3-4.el6.x86_64.rpm
python-babel-0.9.4-5.1.el6.noarch.rpm
python-backports-1.0-5.el6.x86_64.rpm
python-backports-ssl_match_hostname-3.4.0.2-2.el6.noarch.rpm
python-chardet-2.2.1-1.el6.noarch.rpm
python-cherrypy-3.2.2-4.el6.noarch.rpm
python-crypto-2.6.1-3.el6.x86_64.rpm
python-crypto-debuginfo-2.6.1-3.el6.x86_64.rpm
python-enum34-1.0-4.el6.noarch.rpm
python-futures-3.0.3-1.el6.noarch.rpm
python-impacket-0.9.14-1.el6.noarch.rpm
python-jinja2-2.8.1-1.el6.noarch.rpm
python-msgpack-0.4.6-1.el6.x86_64.rpm
python-ordereddict-1.1-2.el6.noarch.rpm
python-requests-2.6.0-3.el6.noarch.rpm
python-setproctitle-1.1.7-2.el6.x86_64.rpm
python-six-1.9.0-2.el6.noarch.rpm
python-tornado-4.2.1-1.el6.x86_64.rpm
python-urllib3-1.10.2-1.el6.noarch.rpm
python-zmq-14.5.0-2.el6.x86_64.rpm
repodata
salt-2016.11.3-1.el6.noarch.rpm
salt-api-2016.11.3-1.el6.noarch.rpm
salt-cloud-2016.11.3-1.el6.noarch.rpm
salt-master-2016.11.3-1.el6.noarch.rpm
salt-minion-2016.11.3-1.el6.noarch.rpm
salt-ssh-2016.11.3-1.el6.noarch.rpm
salt-syndic-2016.11.3-1.el6.noarch.rpm
zeromq-4.0.5-<
4000
span class="hljs-number">4.el6.x86_64.rpm


随后在几个主机之间做好解析

vim /etc/hosts
4 172.25.254.143  server2
5 172.25.254.145  server3
6 172.25.254.146  server5


在两个minion端

安装minion

yum install salt-minion -y


修改配置文件

vim /etc/salt/master
16 master: server2 #修改为master主机名


开启服务

/etc/init.d/salt-minion start


master端

修改配置文件如下

vim /etc/salt/master
534 file_roots:
535   base:
536     - /srv/salt


salt '*' test.ping #查看并发现minion主机
salt-key -A       #添加认证
salt-key -L       #查看已经认证的minion主机


Accepted Keys:
server3
server5
Denied Keys:
Unaccepted Keys:
Rejected Keys:


校验码的查看(判别文件是否更改)

cd /etc/salt/pki/master/
md5sum master.pub


6320641fbe72d9f9b4fc43cef7cd33da master.pubcd

md5sum minion/minion_master.pub


6320641fbe72d9f9b4fc43cef7cd33da minion/minion_master.pub

相互交换公钥用来做加密解密

使用YAML语言来编写运维脚本

实例:apache的安装脚本

httpd:
pkg.installed

/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://httpd/files/httpd.conf
- mode: 644
- user: root
- group: root
- require:
- pkg: httpd

apache-service:
service.running:
- name: httpd
- enable: True
- reload: True
- watch:
- file: /etc/httpd/conf/httpd.conf


安装检测:

salt server3 state.sls httpd.apache


实例:nginx的安装脚本:

nginx-install:
user.present:
- name: nginx
- uid: 800
- shell: /sbin/nologin
- createhome: False
- home: /usr/local/nginx
pkg.installed:
- pkgs:
- gcc
- openssl-devel
- pcre-devel

file.managed:
- name: /mnt/nginx-1.12.0.tar.gz
- source: salt://nginx/files/nginx-1.12.0.tar.gz

cmd.run:
- name: cd /mnt && tar zxf nginx-1.12.0.tar.gz && cd nginx-1.12.0 && 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 && make && make install
- creates: /usr/local/nginx
- require:
- pkg: nginx-install
- file: nginx-install
- user: nginx-install


安装检测:

salt server3 state.sls nginx.install
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自动化 运维