salt-stack
salt-stack功能:三大功能:远程执行、配置管理(状态)、云管理
一、salt安装、配置、启动方法
[root@salt-stack_master ~]# systemctl stop firewalld
[root@salt-stack_master ~]# systemctl disable firewalld //先需要关闭防火墙,否则master和minion有可能无法通信
[root@salt-stack_master ~]# vim /etc/hosts //在配置文件末尾添加下面两行内容,因为在配置minion的时候能靠主机名识别,所有机器都需要加
192.168.100.133 salt-master
192.168.100.134 salt-minion
[root@salt-minion salt]# ping salt-master //ping检测一下,确保没有问题
PING salt-master (192.168.100.133) 56(84) bytes of data.
64 bytes from salt-master (192.168.100.133): icmp_seq=1 ttl=64 time=0.443 ms
64 bytes from salt-master (192.168.100.133): icmp_seq=2 ttl=64 time=1.23 ms
^C
--- salt-master ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.443/0.838/1.234/0.396 ms
1、环境准备和安装
[root@salt-stack_master ~]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
[root@salt-stack_master ~]# sudo yum install salt-master
[root@salt-stack_master ~]# sudo yum install salt-minion
参考地址:http://repo.saltstack.com/#rhel
2、在主节点上安装salt-master、salt-minion,在需要管理的节点上安装slat-minion
[root@salt-stack_master ~]# systemctl start salt-master //先启动master,minion需要配置才能启动
[root@salt-stack_master ~]# vim /etc/salt/minion //这里可以填IP,也可以写主机名,前提是有主机名解析才能识别master
master: salt-master
[root@salt-stack_master ~]# systemctl start salt-minion //修改后启动minion
[root@salt-stack_master salt]# pwd //在启动minion后,会生成一个minion_id的文件,我们不能随便更改主机名,否则会导致master和minion无法通信,修改的话先删除minion_id文件
/etc/salt
[root@salt-stack_master salt]# cat minion_id
salt-stack_master
3、master上需要接受minion的key后才能进行通信
[root@salt-stack_master salt]# salt-key -L //在主节点上列出所有的key
Accepted Keys:
salt-minion
salt-stack_master
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[root@salt-stack_master salt]# salt-key -A //同意所有的key,如果想同意一个key,使用 -a
[root@salt-stack_master ~]# salt-key -d [key名称] //删除一个key
二、常用命令
1、常用的命令介绍
[root@salt-stack_master ~]# salt '*' test.ping //测试minion是否存活
salt-minion:
True
salt-master:
True
[root@salt-stack_master ~]# salt 'salt-min*' cmd.run 'w'
salt-minion:
04:03:02 up 6:18, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.100.1 02:12 1:49m 0.04s 0.04s -bash
root pts/1 192.168.100.1 02:56 16:14 0.27s 0.27s -bash
[root@salt-stack_master ~]# salt '*' cmd.run 'mkdir /tmp/test' //在所有机器创建目录
salt-master:
salt-minion:
[root@salt-stack_master ~]# ls /tmp
test
三、YAMLy格式
YAML:
1. 缩进 2个空格,不能用tab
2. 冒号 key: value
3. 短横线 - list1
- list2
四、salt状态管理配置
[root@salt-stack_master ~]# vim /etc/salt/master //环境的定义
# Example:
# file_roots:
# base:
# - /srv/salt/
# dev:
# - /srv/salt/dev/services
# - /srv/salt/dev/states
# prod:
# - /srv/salt/prod/services
# - /srv/salt/prod/states
#
file_roots:
base:
- /srv/salt
[root@salt-stack_master ~]# systemctl restart salt-master //改完配置文件后重启master
例1:写一个安装、运行apache的sls文件
[root@salt-stack_master srv]# tree
.
└── salt
└── web
└── apache.sls
2 directories, 1 file
[root@salt-stack_master web]# cat apache.sls
apache-install:
pkg.installed:
- names:
- httpd
- httpd-devel
apache-service:
service.running:
- name: httpd
- enable: True
[root@salt-stack_master web]# salt '*' state.sls web.apache //在master执行安装命令。只截取了minion的输出信息
salt-minion:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: The following packages were installed/updated: httpd
Started: 23:27:09.697648
Duration: 19217.845 ms
Changes:
----------
apr:
----------
new:
1.4.8-3.el7_4.1
old:
apr-util:
----------
new:
1.5.2-6.el7
old:
httpd:
----------
new:
2.4.6-89.el7.centos
old:
httpd-tools:
----------
new:
2.4.6-89.el7.centos
old:
mailcap:
----------
new:
2.1.41-2.el7
old:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: The following packages were installed/updated: httpd-devel
Started: 23:27:28.958061
Duration: 6553.724 ms
Changes:
----------
apr-devel:
----------
new:
1.4.8-3.el7_4.1
old:
apr-util-devel:
----------
new:
1.5.2-6.el7
old:
cyrus-sasl:
----------
new:
2.1.26-23.el7
old:
cyrus-sasl-devel:
----------
new:
2.1.26-23.el7
old:
cyrus-sasl-lib:
----------
new:
2.1.26-23.el7
old:
2.1.26-21.el7
expat-devel:
----------
new:
2.1.0-10.el7_3
old:
httpd-devel:
----------
new:
2.4.6-89.el7.centos
old:
libdb:
----------
new:
5.3.21-24.el7
old:
5.3.21-20.el7
libdb-devel:
----------
new:
5.3.21-24.el7
old:
libdb-utils:
----------
new:
5.3.21-24.el7
old:
5.3.21-20.el7
openldap:
----------
new:
2.4.44-21.el7_6
old:
2.4.44-5.el7
openldap-devel:
----------
new:
2.4.44-21.el7_6
old:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: 23:27:36.441424
Duration: 186.563 ms
Changes:
----------
httpd:
True
Summary for salt-minion
------------
Succeeded: 3 (changed=3)
Failed: 0
------------
Total states run: 3
Total run time: 25.958 s
五、高级状态管理
[root@salt-master web]# vim /etc/salt/master //修改master的配置文件
state_top: top.sls
[root@salt-master salt]# pwd //创建top文件
/srv/salt
[root@salt-master salt]# cat top.sls
base:
'salt-minion':
- web.apache
'salt-master':
- web.apache
[root@salt-master ~]# salt 'salt-master' state.highstate test=True //不执行,输出执行后的结果,用于先测试,然后进行执行命令
[root@salt-master /srv/salt]# salt '*' state.highstate
salt-minion:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: All specified packages are already installed
Started: 23:50:53.668711
Duration: 593.209 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: All specified packages are already installed
Started: 23:50:54.262186
Duration: 17.839 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: The service httpd is already running
Started: 23:50:54.280899
Duration: 37.414 ms
Changes:
Summary for salt-minion
------------
Succeeded: 3
Failed: 0
------------
Total states run: 3
Total run time: 648.462 ms
salt-master:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: All specified packages are already installed
Started: 23:50:42.128371
Duration: 551.484 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: All specified packages are already installed
Started: 23:50:42.680173
Duration: 16.562 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: The service httpd is already running
Started: 23:50:42.697628
Duration: 51.981 ms
Changes:
Summary for salt-master
------------
Succeeded: 3
Failed: 0
------------
Total states run: 3
Total run time: 620.027 ms
本文为博主原创文章,转载请标注来源。

浙公网安备 33010602011771号