Install Saltstack

2021-08-11 17:06:20 浏览数 (1)

前言

SaltStack 是一款高性能的自动化运维工具

SaltStack is a revolutionary approach to infrastructure management that replaces complexity with speed. SaltStack is simple enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with each system in seconds

类似的工具还有 Puppet、Chef、Ansible,他们之间可以相互替代,但是哪一个更好,我就不在此引发圣战了

这里分享一下 SaltStack 的安装方法

参考 INSTALL SALTSTACK

Tip: 当前的版本为 Latest release: 2017.7.3 (February 5, 2018)


操作

环境

代码语言:javascript复制
[root@much ~]# hostnamectl
   Static hostname: much
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 33dc28f7e76c4903ad9b603b77e29a7c
           Boot ID: a0fe156a8a034c1e8e48e5b5e3c42a8c
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.21.1.el7.x86_64
      Architecture: x86-64
[root@much ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:0b:e9:0b brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 78880sec preferred_lft 78880sec
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:36:8b:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.209/24 brd 192.168.56.255 scope global enp0s8
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:16:5e:11 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:16:5e:11 brd ff:ff:ff:ff:ff:ff
[root@much ~]#

组件与机制

强烈建议先看看 SALTSTACK COMPONENTS,可以在脑中构建起 SaltStack 里的各种对象,有助于理解其工作机制

根据需要,再看看 Understanding SaltStack,这里基于 SaltStack 系统中的的各种组件,清楚地描述了它们间的交互与工作机制

有了这些作为基础,对于 SaltStack 的使用就会清晰和容易很多

安装 salt master

在 master 上(192.168.56.209)

代码语言:javascript复制
[root@much ~]# curl -L https://bootstrap.saltstack.com -o install_salt.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   264  100   264    0     0    134      0  0:00:01  0:00:01 --:--:--   134
100  244k  100  244k    0     0  68655      0  0:00:03  0:00:03 --:--:--  282k
[root@much ~]# sh install_salt.sh -P -M
 *  INFO: Running version: 2017.12.13
 *  INFO: Executed by: sh
 *  INFO: Command line: 'install_salt.sh -P -M'

 *  INFO: System Information:
 *  INFO:   CPU:          GenuineIntel
 *  INFO:   CPU Arch:     x86_64
 *  INFO:   OS Name:      Linux
 *  INFO:   OS Version:   3.10.0-514.21.1.el7.x86_64
 *  INFO:   Distribution: CentOS 7.3

 *  INFO: Installing minion
 *  INFO: Installing master
 *  INFO: Found function install_centos_stable_deps
 *  INFO: Found function config_salt
 *  INFO: Found function preseed_master
 *  INFO: Found function install_centos_stable
 *  INFO: Found function install_centos_stable_post
 *  INFO: Found function install_centos_restart_daemons
 *  INFO: Found function daemons_running
 *  INFO: Found function install_centos_check_services
 *  INFO: Running install_centos_stable_deps()
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.pregi.net
 * c7-media:
 * epel: mirror.pregi.net
 * extras: mirror.pregi.net
 * updates: mirror.pregi.net
Resolving Dependencies
--> Running transaction check
---> Package PyYAML.x86_64 0:3.11-1.el7 will be installed
---> Package chkconfig.x86_64 0:1.7.2-1.el7 will be updated
--> Processing Dependency: chkconfig = 1.7.2-1.el7 for package: ntsysv-1.7.2-1.el7.x86_64
---> Package chkconfig.x86_64 0:1.7.4-1.el7 will be an update
---> Package yum-utils.noarch 0:1.1.31-40.el7 will be updated
---> Package yum-utils.noarch 0:1.1.31-42.el7 will be an update
--> Running transaction check
---> Package ntsysv.x86_64 0:1.7.2-1.el7 will be updated
---> Package ntsysv.x86_64 0:1.7.4-1.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch           Version               Repository         Size
================================================================================
Installing:
 PyYAML            x86_64         3.11-1.el7            saltstack         160 k
Updating:
 chkconfig         x86_64         1.7.4-1.el7           base              181 k
 yum-utils         noarch         1.1.31-42.el7         base              117 k
Updating for dependencies:
 ntsysv            x86_64         1.7.4-1.el7           base               38 k

Transaction Summary
================================================================================
Install  1 Package
Upgrade  2 Packages ( 1 Dependent package)

Total download size: 497 k
Downloading packages:
No Presto metadata available for base
--------------------------------------------------------------------------------
Total                                              190 kB/s | 497 kB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : chkconfig-1.7.4-1.el7.x86_64                                 1/7
  Updating   : ntsysv-1.7.4-1.el7.x86_64                                    2/7
  Installing : PyYAML-3.11-1.el7.x86_64                                     3/7
  Updating   : yum-utils-1.1.31-42.el7.noarch                               4/7
  Cleanup    : yum-utils-1.1.31-40.el7.noarch                               5/7
  Cleanup    : ntsysv-1.7.2-1.el7.x86_64                                    6/7
  Cleanup    : chkconfig-1.7.2-1.el7.x86_64                                 7/7
  Verifying  : yum-utils-1.1.31-42.el7.noarch                               1/7
  Verifying  : chkconfig-1.7.4-1.el7.x86_64                                 2/7
  Verifying  : PyYAML-3.11-1.el7.x86_64                                     3/7
  Verifying  : ntsysv-1.7.4-1.el7.x86_64                                    4/7
  Verifying  : chkconfig-1.7.2-1.el7.x86_64                                 5/7
  Verifying  : yum-utils-1.1.31-40.el7.noarch                               6/7
  Verifying  : ntsysv-1.7.2-1.el7.x86_64                                    7/7

Installed:
  PyYAML.x86_64 0:3.11-1.el7                                                    

Updated:
  chkconfig.x86_64 0:1.7.4-1.el7        yum-utils.noarch 0:1.1.31-42.el7       

Dependency Updated:
  ntsysv.x86_64 0:1.7.4-1.el7                                                   

Complete!
 *  INFO: Running install_centos_stable()
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.pregi.net
 * c7-media:
 * epel: mirror.pregi.net
 * extras: mirror.pregi.net
 * updates: mirror.pregi.net
Resolving Dependencies
--> Running transaction check
---> Package salt-master.noarch 0:2017.7.3-1.el7 will be installed
--> Processing Dependency: salt = 2017.7.3-1.el7 for package: salt-master-2017.7.3-1.el7.noarch
---> Package salt-minion.noarch 0:2017.7.3-1.el7 will be installed
--> Running transaction check
---> Package salt.noarch 0:2017.7.3-1.el7 will be installed
--> Processing Dependency: python-msgpack > 0.3 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-tornado >= 4.2.1 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-futures >= 2.0 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-crypto >= 2.6.1 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-zmq for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-psutil for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: salt-2017.7.3-1.el7.noarch
--> Running transaction check
---> Package python-jinja2.noarch 0:2.7.2-2.el7 will be installed
--> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-2.el7.noarch
---> Package python-tornado.x86_64 0:4.2.1-1.el7 will be installed
---> Package python-zmq.x86_64 0:15.3.0-2.el7 will be installed
--> Processing Dependency: libzmq.so.5()(64bit) for package: python-zmq-15.3.0-2.el7.x86_64
---> Package python2-crypto.x86_64 0:2.6.1-15.el7 will be installed
--> Processing Dependency: libtomcrypt.so.0()(64bit) for package: python2-crypto-2.6.1-15.el7.x86_64
---> Package python2-futures.noarch 0:3.0.5-1.el7 will be installed
---> Package python2-msgpack.x86_64 0:0.5.1-1.el7 will be installed
---> Package python2-psutil.x86_64 0:2.2.1-3.el7 will be installed
--> Running transaction check
---> Package libtomcrypt.x86_64 0:1.17-26.el7 will be installed
--> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt-1.17-26.el7.x86_64
--> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17-26.el7.x86_64
---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
---> Package zeromq.x86_64 0:4.1.4-6.el7 will be installed
--> Processing Dependency: libsodium.so.13()(64bit) for package: zeromq-4.1.4-6.el7.x86_64
--> Processing Dependency: libpgm-5.2.so.0()(64bit) for package: zeromq-4.1.4-6.el7.x86_64
--> Running transaction check
---> Package libsodium13.x86_64 0:1.0.5-1.el7 will be installed
---> Package libtommath.x86_64 0:0.42.0-6.el7 will be installed
---> Package openpgm.x86_64 0:5.2.122-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch         Version               Repository       Size
================================================================================
Installing:
 salt-master           noarch       2017.7.3-1.el7        saltstack       2.0 M
 salt-minion           noarch       2017.7.3-1.el7        saltstack        35 k
Installing for dependencies:
 libsodium13           x86_64       1.0.5-1.el7           epel            144 k
 libtomcrypt           x86_64       1.17-26.el7           extras          224 k
 libtommath            x86_64       0.42.0-6.el7          extras           36 k
 openpgm               x86_64       5.2.122-2.el7         epel            171 k
 python-babel          noarch       0.9.6-8.el7           base            1.4 M
 python-jinja2         noarch       2.7.2-2.el7           base            515 k
 python-tornado        x86_64       4.2.1-1.el7           base            636 k
 python-zmq            x86_64       15.3.0-2.el7          saltstack       520 k
 python2-crypto        x86_64       2.6.1-15.el7          extras          477 k
 python2-futures       noarch       3.0.5-1.el7           epel             26 k
 python2-msgpack       x86_64       0.5.1-1.el7           epel             93 k
 python2-psutil        x86_64       2.2.1-3.el7           epel            116 k
 salt                  noarch       2017.7.3-1.el7        saltstack       7.9 M
 zeromq                x86_64       4.1.4-6.el7           saltstack       555 k

Transaction Summary
================================================================================
Install  2 Packages ( 14 Dependent packages)

Total download size: 15 M
Installed size: 58 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                              271 kB/s |  15 MB  00:55     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libsodium13-1.0.5-1.el7.x86_64                              1/16
  Installing : python-babel-0.9.6-8.el7.noarch                             2/16
  Installing : python-jinja2-2.7.2-2.el7.noarch                            3/16
  Installing : python-tornado-4.2.1-1.el7.x86_64                           4/16
  Installing : libtommath-0.42.0-6.el7.x86_64                              5/16
  Installing : libtomcrypt-1.17-26.el7.x86_64                              6/16
  Installing : python2-crypto-2.6.1-15.el7.x86_64                          7/16
  Installing : python2-msgpack-0.5.1-1.el7.x86_64                          8/16
  Installing : python2-psutil-2.2.1-3.el7.x86_64                           9/16
  Installing : python2-futures-3.0.5-1.el7.noarch                         10/16
  Installing : openpgm-5.2.122-2.el7.x86_64                               11/16
  Installing : zeromq-4.1.4-6.el7.x86_64                                  12/16
  Installing : python-zmq-15.3.0-2.el7.x86_64                             13/16
  Installing : salt-2017.7.3-1.el7.noarch                                 14/16
  Installing : salt-master-2017.7.3-1.el7.noarch                          15/16
  Installing : salt-minion-2017.7.3-1.el7.noarch                          16/16
  Verifying  : salt-master-2017.7.3-1.el7.noarch                           1/16
  Verifying  : python-jinja2-2.7.2-2.el7.noarch                            2/16
  Verifying  : openpgm-5.2.122-2.el7.x86_64                                3/16
  Verifying  : salt-2017.7.3-1.el7.noarch                                  4/16
  Verifying  : python2-futures-3.0.5-1.el7.noarch                          5/16
  Verifying  : python2-crypto-2.6.1-15.el7.x86_64                          6/16
  Verifying  : python2-psutil-2.2.1-3.el7.x86_64                           7/16
  Verifying  : python-zmq-15.3.0-2.el7.x86_64                              8/16
  Verifying  : python2-msgpack-0.5.1-1.el7.x86_64                          9/16
  Verifying  : libtommath-0.42.0-6.el7.x86_64                             10/16
  Verifying  : python-tornado-4.2.1-1.el7.x86_64                          11/16
  Verifying  : zeromq-4.1.4-6.el7.x86_64                                  12/16
  Verifying  : python-babel-0.9.6-8.el7.noarch                            13/16
  Verifying  : libtomcrypt-1.17-26.el7.x86_64                             14/16
  Verifying  : salt-minion-2017.7.3-1.el7.noarch                          15/16
  Verifying  : libsodium13-1.0.5-1.el7.x86_64                             16/16

Installed:
  salt-master.noarch 0:2017.7.3-1.el7    salt-minion.noarch 0:2017.7.3-1.el7   

Dependency Installed:
  libsodium13.x86_64 0:1.0.5-1.el7       libtomcrypt.x86_64 0:1.17-26.el7      
  libtommath.x86_64 0:0.42.0-6.el7       openpgm.x86_64 0:5.2.122-2.el7        
  python-babel.noarch 0:0.9.6-8.el7      python-jinja2.noarch 0:2.7.2-2.el7    
  python-tornado.x86_64 0:4.2.1-1.el7    python-zmq.x86_64 0:15.3.0-2.el7      
  python2-crypto.x86_64 0:2.6.1-15.el7   python2-futures.noarch 0:3.0.5-1.el7  
  python2-msgpack.x86_64 0:0.5.1-1.el7   python2-psutil.x86_64 0:2.2.1-3.el7   
  salt.noarch 0:2017.7.3-1.el7           zeromq.x86_64 0:4.1.4-6.el7           

Complete!
 *  INFO: Running install_centos_stable_post()
 *  INFO: Running install_centos_check_services()
 *  INFO: Running install_centos_restart_daemons()
 *  INFO: Running daemons_running()
 *  INFO: Salt installed!
[root@much ~]# echo $?
0
[root@much ~]# rpm -qa | grep -i salt
salt-2017.7.3-1.el7.noarch
salt-master-2017.7.3-1.el7.noarch
salt-minion-2017.7.3-1.el7.noarch
[root@much ~]#

安装 salt minion

在 minion 上(192.168.56.208)

代码语言:javascript复制
[root@much ~]# curl -L https://bootstrap.saltstack.com -o install_salt.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   264  100   264    0     0    147      0  0:00:01  0:00:01 --:--:--   147
100  244k  100  244k    0     0  71726      0  0:00:03  0:00:03 --:--:--  201k
[root@much ~]# sudo sh install_salt.sh -P
 *  INFO: Running version: 2017.12.13
 *  INFO: Executed by: shell pipe
 *  INFO: Command line: 'install_salt.sh -P'

 *  INFO: System Information:
 *  INFO:   CPU:          GenuineIntel
 *  INFO:   CPU Arch:     x86_64
 *  INFO:   OS Name:      Linux
 *  INFO:   OS Version:   3.10.0-514.21.1.el7.x86_64
 *  INFO:   Distribution: CentOS 7.3

 *  INFO: Installing minion
 *  INFO: Found function install_centos_stable_deps
 *  INFO: Found function config_salt
 *  INFO: Found function preseed_master
 *  INFO: Found function install_centos_stable
 *  INFO: Found function install_centos_stable_post
 *  INFO: Found function install_centos_restart_daemons
 *  INFO: Found function daemons_running
 *  INFO: Found function install_centos_check_services
 *  INFO: Running install_centos_stable_deps()
Loaded plugins: fastestmirror, langpacks
https://ftp.yzu.edu.tw/Linux/Fedora-EPEL/7/x86_64/repodata/bdb4124d91bfddbc7a700e9ee228e462ff7d3652d93aac38b327e14fea76911e-primary.sqlite.bz2: [Errno 14] curl#56 - "TCP connection reset by peer"
Trying other mirror.
Loading mirror speeds from cached hostfile
 * base: mirror.pregi.net
 * c7-media:
 * epel: mirror.pregi.net
 * extras: mirror.pregi.net
 * updates: mirror.pregi.net
Resolving Dependencies
--> Running transaction check
---> Package PyYAML.x86_64 0:3.11-1.el7 will be installed
---> Package chkconfig.x86_64 0:1.7.2-1.el7 will be updated
--> Processing Dependency: chkconfig = 1.7.2-1.el7 for package: ntsysv-1.7.2-1.el7.x86_64
---> Package chkconfig.x86_64 0:1.7.4-1.el7 will be an update
---> Package yum-utils.noarch 0:1.1.31-40.el7 will be updated
---> Package yum-utils.noarch 0:1.1.31-42.el7 will be an update
--> Running transaction check
---> Package ntsysv.x86_64 0:1.7.2-1.el7 will be updated
---> Package ntsysv.x86_64 0:1.7.4-1.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch           Version               Repository         Size
================================================================================
Installing:
 PyYAML            x86_64         3.11-1.el7            saltstack         160 k
Updating:
 chkconfig         x86_64         1.7.4-1.el7           base              181 k
 yum-utils         noarch         1.1.31-42.el7         base              117 k
Updating for dependencies:
 ntsysv            x86_64         1.7.4-1.el7           base               38 k

Transaction Summary
================================================================================
Install  1 Package
Upgrade  2 Packages ( 1 Dependent package)

Total download size: 497 k
Downloading packages:
No Presto metadata available for base
--------------------------------------------------------------------------------
Total                                              195 kB/s | 497 kB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : chkconfig-1.7.4-1.el7.x86_64                                 1/7
  Updating   : ntsysv-1.7.4-1.el7.x86_64                                    2/7
  Installing : PyYAML-3.11-1.el7.x86_64                                     3/7
  Updating   : yum-utils-1.1.31-42.el7.noarch                               4/7
  Cleanup    : yum-utils-1.1.31-40.el7.noarch                               5/7
  Cleanup    : ntsysv-1.7.2-1.el7.x86_64                                    6/7
  Cleanup    : chkconfig-1.7.2-1.el7.x86_64                                 7/7
  Verifying  : yum-utils-1.1.31-42.el7.noarch                               1/7
  Verifying  : chkconfig-1.7.4-1.el7.x86_64                                 2/7
  Verifying  : PyYAML-3.11-1.el7.x86_64                                     3/7
  Verifying  : ntsysv-1.7.4-1.el7.x86_64                                    4/7
  Verifying  : chkconfig-1.7.2-1.el7.x86_64                                 5/7
  Verifying  : yum-utils-1.1.31-40.el7.noarch                               6/7
  Verifying  : ntsysv-1.7.2-1.el7.x86_64                                    7/7

Installed:
  PyYAML.x86_64 0:3.11-1.el7                                                    

Updated:
  chkconfig.x86_64 0:1.7.4-1.el7        yum-utils.noarch 0:1.1.31-42.el7       

Dependency Updated:
  ntsysv.x86_64 0:1.7.4-1.el7                                                   

Complete!
 *  INFO: Running install_centos_stable()
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.pregi.net
 * c7-media:
 * epel: mirror.pregi.net
 * extras: mirror.pregi.net
 * updates: mirror.pregi.net
Resolving Dependencies
--> Running transaction check
---> Package salt-minion.noarch 0:2017.7.3-1.el7 will be installed
--> Processing Dependency: salt = 2017.7.3-1.el7 for package: salt-minion-2017.7.3-1.el7.noarch
--> Running transaction check
---> Package salt.noarch 0:2017.7.3-1.el7 will be installed
--> Processing Dependency: python-msgpack > 0.3 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-tornado >= 4.2.1 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-futures >= 2.0 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-crypto >= 2.6.1 for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-psutil for package: salt-2017.7.3-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: salt-2017.7.3-1.el7.noarch
--> Running transaction check
---> Package python-jinja2.noarch 0:2.7.2-2.el7 will be installed
--> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-2.el7.noarch
---> Package python-tornado.x86_64 0:4.2.1-1.el7 will be installed
---> Package python2-crypto.x86_64 0:2.6.1-15.el7 will be installed
--> Processing Dependency: libtomcrypt.so.0()(64bit) for package: python2-crypto-2.6.1-15.el7.x86_64
---> Package python2-futures.noarch 0:3.0.5-1.el7 will be installed
---> Package python2-msgpack.x86_64 0:0.5.1-1.el7 will be installed
---> Package python2-psutil.x86_64 0:2.2.1-3.el7 will be installed
--> Running transaction check
---> Package libtomcrypt.x86_64 0:1.17-26.el7 will be installed
--> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt-1.17-26.el7.x86_64
--> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17-26.el7.x86_64
---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
--> Running transaction check
---> Package libtommath.x86_64 0:0.42.0-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch         Version               Repository       Size
================================================================================
Installing:
 salt-minion           noarch       2017.7.3-1.el7        saltstack        35 k
Installing for dependencies:
 libtomcrypt           x86_64       1.17-26.el7           extras          224 k
 libtommath            x86_64       0.42.0-6.el7          extras           36 k
 python-babel          noarch       0.9.6-8.el7           base            1.4 M
 python-jinja2         noarch       2.7.2-2.el7           base            515 k
 python-tornado        x86_64       4.2.1-1.el7           base            636 k
 python2-crypto        x86_64       2.6.1-15.el7          extras          477 k
 python2-futures       noarch       3.0.5-1.el7           epel             26 k
 python2-msgpack       x86_64       0.5.1-1.el7           epel             93 k
 python2-psutil        x86_64       2.2.1-3.el7           epel            116 k
 salt                  noarch       2017.7.3-1.el7        saltstack       7.9 M

Transaction Summary
================================================================================
Install  1 Package ( 10 Dependent packages)

Total download size: 11 M
Installed size: 52 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                              270 kB/s |  11 MB  00:43     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-babel-0.9.6-8.el7.noarch                             1/11
  Installing : python-jinja2-2.7.2-2.el7.noarch                            2/11
  Installing : python-tornado-4.2.1-1.el7.x86_64                           3/11
  Installing : libtommath-0.42.0-6.el7.x86_64                              4/11
  Installing : libtomcrypt-1.17-26.el7.x86_64                              5/11
  Installing : python2-crypto-2.6.1-15.el7.x86_64                          6/11
  Installing : python2-msgpack-0.5.1-1.el7.x86_64                          7/11
  Installing : python2-futures-3.0.5-1.el7.noarch                          8/11
  Installing : python2-psutil-2.2.1-3.el7.x86_64                           9/11
  Installing : salt-2017.7.3-1.el7.noarch                                 10/11
  Installing : salt-minion-2017.7.3-1.el7.noarch                          11/11
  Verifying  : salt-2017.7.3-1.el7.noarch                                  1/11
  Verifying  : python-jinja2-2.7.2-2.el7.noarch                            2/11
  Verifying  : python2-psutil-2.2.1-3.el7.x86_64                           3/11
  Verifying  : python2-futures-3.0.5-1.el7.noarch                          4/11
  Verifying  : python2-crypto-2.6.1-15.el7.x86_64                          5/11
  Verifying  : python2-msgpack-0.5.1-1.el7.x86_64                          6/11
  Verifying  : libtommath-0.42.0-6.el7.x86_64                              7/11
  Verifying  : python-tornado-4.2.1-1.el7.x86_64                           8/11
  Verifying  : python-babel-0.9.6-8.el7.noarch                             9/11
  Verifying  : libtomcrypt-1.17-26.el7.x86_64                             10/11
  Verifying  : salt-minion-2017.7.3-1.el7.noarch                          11/11

Installed:
  salt-minion.noarch 0:2017.7.3-1.el7                                           

Dependency Installed:
  libtomcrypt.x86_64 0:1.17-26.el7       libtommath.x86_64 0:0.42.0-6.el7      
  python-babel.noarch 0:0.9.6-8.el7      python-jinja2.noarch 0:2.7.2-2.el7    
  python-tornado.x86_64 0:4.2.1-1.el7    python2-crypto.x86_64 0:2.6.1-15.el7  
  python2-futures.noarch 0:3.0.5-1.el7   python2-msgpack.x86_64 0:0.5.1-1.el7  
  python2-psutil.x86_64 0:2.2.1-3.el7    salt.noarch 0:2017.7.3-1.el7          

Complete!
 *  INFO: Running install_centos_stable_post()
 *  INFO: Running install_centos_check_services()
 *  INFO: Running install_centos_restart_daemons()
 *  INFO: Running daemons_running()
 *  INFO: Salt installed!
[root@much ~]# echo $?
0
[root@much ~]# rpm -qa | grep -i salt
salt-2017.7.3-1.el7.noarch
salt-minion-2017.7.3-1.el7.noarch
[root@much ~]#

脚本参数

-P 允许使用 pip 进行安装

-M 安装 salt-master

默认就是安装 salt-minion 的

代码语言:javascript复制
[root@much ~]# sh install_salt.sh -h

  Usage :  bootstrap-salt.sh [options] <install-type> [install-type-args]

  Installation types:
    - stable              Install latest stable release. This is the default
                          install type
    - stable [branch]     Install latest version on a branch. Only supported
                          for packages available at repo.saltstack.com
    - stable [version]    Install a specific version. Only supported for
                          packages available at repo.saltstack.com
    - daily               Ubuntu specific: configure SaltStack Daily PPA
    - testing             RHEL-family specific: configure EPEL testing repo
    - git                 Install from the head of the develop branch
    - git [ref]           Install from any git ref (such as a branch, tag, or
                          commit)

  Examples:
    - bootstrap-salt.sh
    - bootstrap-salt.sh stable
    - bootstrap-salt.sh stable 2016.3
    - bootstrap-salt.sh stable 2016.3.1
    - bootstrap-salt.sh daily
    - bootstrap-salt.sh testing
    - bootstrap-salt.sh git
    - bootstrap-salt.sh git 2016.3
    - bootstrap-salt.sh git v2016.3.1
    - bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358

  Options:
    -h  Display this message
    -v  Display script version
    -n  No colours
    -D  Show debug output
    -c  Temporary configuration directory
    -g  Salt Git repository URL. Default: https://github.com/saltstack/salt.git
    -w  Install packages from downstream package repository rather than
        upstream, saltstack package repository. This is currently only
        implemented for SUSE.
    -k  Temporary directory holding the minion keys which will pre-seed
        the master.
    -s  Sleep time used when waiting for daemons to start, restart and when
        checking for the services running. Default: 3
    -L  Also install salt-cloud and required python-libcloud package
    -M  Also install salt-master
    -S  Also install salt-syndic
    -N  Do not install salt-minion
    -X  Do not start daemons after installation
    -d  Disables checking if Salt services are enabled to start on system boot.
        You can also do this by touching /tmp/disable_salt_checks on the target
        host. Default: ${BS_FALSE}
    -P  Allow pip based installations. On some distributions the required salt
        packages or its dependencies are not available as a package for that
        distribution. Using this flag allows the script to use pip as a last
        resort method. NOTE: This only works for functions which actually
        implement pip based installations.
    -U  If set, fully upgrade the system prior to bootstrapping Salt
    -I  If set, allow insecure connections while downloading any files. For
        example, pass '--no-check-certificate' to 'wget' or '--insecure' to
        'curl'. On Debian and Ubuntu, using this option with -U allows to obtain
        GnuPG archive keys insecurely if distro has changed release signatures.
    -F  Allow copied files to overwrite existing (config, init.d, etc)
    -K  If set, keep the temporary files in the temporary directories specified
        with -c and -k
    -C  Only run the configuration function. Implies -F (forced overwrite).
        To overwrite Master or Syndic configs, -M or -S, respectively, must
        also be specified. Salt installation will be ommitted, but some of the
        dependencies could be installed to write configuration with -j or -J.
    -A  Pass the salt-master DNS name or IP. This will be stored under
        ${BS_SALT_ETC_DIR}/minion.d/99-master-address.conf
    -i  Pass the salt-minion id. This will be stored under
        ${BS_SALT_ETC_DIR}/minion_id
    -p  Extra-package to install while installing Salt dependencies. One package
        per -p flag. You're responsible for providing the proper package name.
    -H  Use the specified HTTP proxy for all download URLs (including https://).
        For example: http://myproxy.example.com:3128
    -Z  Enable additional package repository for newer ZeroMQ
        (only available for RHEL/CentOS/Fedora/Ubuntu based distributions)
    -b  Assume that dependencies are already installed and software sources are
        set up. If git is selected, git tree is still checked out as dependency
        step.
    -f  Force shallow cloning for git installations.
        This may result in an "n/a" in the version number.
    -l  Disable ssl checks. When passed, switches "https" calls to "http" where
        possible.
    -V  Install Salt into virtualenv
        (only available for Ubuntu based distributions)
    -a  Pip install all Python pkg dependencies for Salt. Requires -V to install
        all pip pkgs into the virtualenv.
        (Only available for Ubuntu based distributions)
    -r  Disable all repository configuration performed by this script. This
        option assumes all necessary repository configuration is already present
        on the system.
    -R  Specify a custom repository URL. Assumes the custom repository URL
        points to a repository that mirrors Salt packages located at
        repo.saltstack.com. The option passed with -R replaces the
        "repo.saltstack.com". If -R is passed, -r is also set. Currently only
        works on CentOS/RHEL and Debian based distributions.
    -J  Replace the Master config file with data passed in as a JSON string. If
        a Master config file is found, a reasonable effort will be made to save
        the file with a ".bak" extension. If used in conjunction with -C or -F,
        no ".bak" file will be created as either of those options will force
        a complete overwrite of the file.
    -j  Replace the Minion config file with data passed in as a JSON string. If
        a Minion config file is found, a reasonable effort will be made to save
        the file with a ".bak" extension. If used in conjunction with -C or -F,
        no ".bak" file will be created as either of those options will force
        a complete overwrite of the file.
    -q  Quiet salt installation from git (setup.py install -q)
    -x  Changes the python version used to install a git version of salt. Currently
        this is considered experimental and has only been tested on Centos 6. This
        only works for git installations.
    -y  Installs a different python version on host. Currently this has only been
        tested with Centos 6 and is considered experimental. This will install the
        ius repo on the box if disable repo is false. This must be used in conjunction
        with -x <pythonversion>.  For example:
            sh bootstrap.sh -P -y -x python2.7 git v2016.11.3
        The above will install python27 and install the git version of salt using the
        python2.7 executable. This only works for git and pip installations.

[root@much ~]#

这个 shell 脚本可以侦测目标系统的环境,并且选择最合适的安装方法

在我的环境中,是使用的 yum 安装的

代码语言:javascript复制
[root@much ~]# ll /etc/yum.repos.d/saltstack.repo
-rw-r--r-- 1 root root 295 2月  17 19:20 /etc/yum.repos.d/saltstack.repo
[root@much ~]#

配置 master

默认情况下 master 就监听在了 0.0.0.04505 4506 端口

0 人点赞