salt-stack

salt-stack功能:三大功能:遠程執行、配置管理(狀態)、雲管理web

1、salt安裝、配置、啓動方法apache

[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

一、環境準備和安裝
[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

二、在主節點上安裝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

三、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

  2、經常使用命令vim

一、經常使用的命令介紹
[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

  3、YAMLy格式centos

YAML:
    
     1. 縮進   2個空格,不能用tab

     2. 冒號	 key: value

     3. 短橫線   - list1
                    - list2

  4、salt狀態管理配置bash

 [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

  5、高級狀態管理測試

[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
相關文章
相關標籤/搜索