saltstack實戰4--綜合練習1

規範配置管理

實際工做中可能會有現網環境,基線環境,開發環境。 須要使用saltstack統一管理。機器多了,業務多了,可能配置文件存放的會比較亂,所以能夠統一管理起來apache

咱們能夠再加2個目錄,test是測試環境,prod是生產環境,base是基線環境。
操做以下,新添加2個目錄,同時調整基線目錄
# 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/base
  test:
    - /srv/salt/test
  prod:
    - /srv/salt/prod

 重啓服務讓配置生效,建立目錄,調整原先的配置文件到新的base目錄下vim

[root@master pillar]# /etc/init.d/salt-master restart
Stopping salt-master daemon:                               [  OK  ]
Starting salt-master daemon:                               [  OK  ]
[root@master pillar]# mkdir /srv/salt/base -p
[root@master pillar]# mkdir /srv/salt/test -p
[root@master pillar]# mkdir /srv/salt/prod -p
[root@master pillar]# cd /srv/salt/
[root@master salt]# ls
apache.sls  base  prod  test  top.sls
[root@master salt]# mv apache.sls base/
[root@master salt]# mv top.sls  base/
[root@master salt]# ll
total 12
drwxr-xr-x 2 root root 4096 Jan  1 19:33 base
drwxr-xr-x 2 root root 4096 Jan  1 19:32 prod
drwxr-xr-x 2 root root 4096 Jan  1 19:32 test
[root@master salt]# 

  

 文件管理的練習

對minion的dns文件進行統一管理數組

先在base目錄下建立個files目錄,專門存放文件,這裏給這個dns文件追加個不同的東西,便於標識bash

[root@master salt]# cd /srv/salt/base/
[root@master base]# mkdir files
[root@master base]# cd files/
[root@master files]# ls
[root@master files]# cp /etc/resolv.conf .
[root@master files]# ls
resolv.conf
[root@master files]# cat resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
[root@master files]# echo "#create by zyx" >> resolv.conf 
[root@master files]# cat resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
#create by zyx
[root@master files]# 

編輯配置文件,用於管理這個dns文件給minion,須要進行一些配置,存放的路徑,來源,權限,數組等 服務器

注意下面兩種寫法等價的 app

[root@master files]# cd ..
[root@master base]# pwd
/srv/salt/base
[root@master base]# vim dns.sls
[root@master base]# cat dns.sls 
/etc/resolv.conf:
  file.managed:
    - source: salt://files/resolv.conf
    - user: root
    - group: root
    - mode: 644
[root@master base]# 

 等價於下面的,默認你沒有定義name的話,salt會把id當成name的默認值,下面的resolv-file是個id,隨便定義,只要惟一便可測試

[root@master base]# cat dns.sls 
resolv-file:
  file.managed:
    - source: salt://files/resolv.conf
    - name: /etc/resolv.conf
    - user: root
    - group: root
    - mode: 644
[root@master base]# 

  

執行一下,能夠看到Changes的變化的部分ui

[root@master base]# salt 'minion01'  state.sls  dns
minion01:
----------
          ID: resolv-file
    Function: file.managed
        Name: /etc/resolv.conf
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 19:53:15.932376
    Duration: 11.4 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,2 +1,3 @@
                   # Generated by NetworkManager
                   nameserver 10.0.1.11
                  +#create by zyx

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
[root@master base]# 

去minion01上驗證下,沒問題this

[root@minion01 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
#create by zyx
[root@minion01 ~]# 

再把配置文件改爲以下內容,對minion02執行操做spa

[root@master base]# cat dns.sls 
/etc/resolv.conf:  
  file.managed:
    - source: salt://files/resolv.conf
    - user: root
    - group: root
    - mode: 644
[root@master base]# salt 'minion02'  state.sls  dns
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 19:57:27.628894
    Duration: 13.128 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,2 +1,3 @@
                   # Generated by NetworkManager
                   nameserver 10.0.1.11
                  +#create by zyx

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
[root@master base]# 

以前講了top.sls,這個入口文件,咱們還能夠經過這個入口文件進行管理

這個也叫經過高級狀態管理

[root@master base]# ls
apache.sls  dns.sls  files  top.sls
[root@master base]# echo "#second" >> files/resolv.conf 
[root@master base]# cat files/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
#create by zyx
#second
[root@master base]# vim top.sls 
[root@master base]# cat top.sls 
base:
  '*':
    - dns
[root@master base]# salt 'minion02'  state.highstate
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 20:00:17.814797
    Duration: 19.636 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,3 +1,4 @@
                   # Generated by NetworkManager
                   nameserver 10.0.1.11
                   #create by zyx
                  +#second

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
[root@master base]# 

  

之後對現網管理的話,能夠把它們分類,這樣針對哪臺機器須要安裝或者配置什麼東西時,把配置文件include進來便可。下降模塊之間的耦合性。更加靈活和方便

能夠分爲:

系統初始化

功能模塊

業務模塊

另外配置文件中語法格式要嚴格遵照YAML語法規則。

jinja模板的使用

在平常管理中,有時候會遇到這種狀況,對A機器某個文件管理,好比此文件中有一處的配置不固定,好比端口號或者IP

A機器多是80端口,可能過幾天須要使用8080端口,而咱們每次去更改源文件比較麻煩,咱們此時能夠經過使用jinja模板把變化的部分用變量代替

而後,在配置管理文件裏面定義此變量的值。

例如,dns服務器的IP常常發生變化。

先修改源文件,把原先的值的部分用變量代替

而後修改配置管理文件,聲明使用jinja模板,同時設置變量的值,以下,爲了加以區分,咱們把dns值設置爲10.0.1.111

[root@master files]# cat resolv.conf 
# Generated by NetworkManager
nameserver {{ DNS_SERVER }}
#create by zyx
#third [root@master files]# pwd /srv/salt/base/files [root@master files]# cd .. [root@master base]# vim dns.sls [root@master base]# cat dns.sls /etc/resolv.conf: file.managed: - source: salt://files/resolv.conf - user: root - group: root - mode: 644 - template: jinja - defaults: DNS_SERVER: 10.0.1.111 [root@master base]#

關於jinja的用法

執行測試下

[root@master base]# salt 'minion02'  state.highstate
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 20:21:10.739601
    Duration: 12.108 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,4 +1,4 @@
                   # Generated by NetworkManager
                  -nameserver {{ DNS_SERVER }}
                  +nameserver 10.0.1.111
                   #create by zyx
                   #third

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
[root@master base]# 

在minion02上驗證下,ok

[root@minion02 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.111
#create by zyx
#third
[root@minion02 ~]# 

 以上就是配置管理結合jinja的用法

 

配置管理結合grains和jinja 

好比咱們把系統信息加入到minion上

[root@master base]# salt '*'  grains.get os
minion01:
    CentOS
minion02:
    CentOS
[root@master base]# 

以下操做,把須要更換的地方寫成jinja模板形式的grains變量,而後執行

[root@master base]# cat files/resolv.conf 
# Generated by NetworkManager
nameserver {{ DNS_SERVER }}
#create by zyx
#{{ grains['os'] }}
[root@master base]# salt 'minion02'  state.highstate
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 20:26:12.450712
    Duration: 32.907 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,4 +1,4 @@
                   # Generated by NetworkManager
                   nameserver 10.0.1.111
                   #create by zyx
                  -#third
                  +#CentOS

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
[root@master base]# 

minion02上驗證確認下,沒問題,系統信息加進來了

[root@minion02 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.111
#create by zyx
#CentOS
[root@minion02 ~]# 

  

配置管理--系統初始化

 對於一臺機器的管理,能夠分解爲3部分,從下到上依次爲

系統初始化,功能模塊,業務模塊

 

 再次對咱們的base目錄進行改造

base基礎目錄下,init目錄用於存放系統初始化的東西

在init下面創建files文件夾用於存放源文件類的東西,top.sls入口文件不用動,它須要在base目錄下

[root@master base]# cd  /srv/salt/base/
[root@master base]# ls
apache.sls  dns.sls  files  top.sls
[root@master base]# mkdir init
[root@master base]# mv dns.sls init/
[root@master base]# mv files/ init/
[root@master base]# ls
apache.sls  init  top.sls
[root@master base]# mv apache.sls init/
[root@master base]# ls
init  top.sls
[root@master base]# tree

  

一、配置好dns相關的東西

[root@master init]# rm -f apache.sls 
[root@master init]# ls
dns.sls  files
[root@master init]# vim dns.sls 
[root@master init]# cat dns.sls 
/etc/resolv.conf:  
  file.managed:
    - source: salt://init/files/resolv.conf
    - user: root
    - group: root
    - mode: 644
[root@master init]# vim files/resolv.conf 
[root@master init]# cat files/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
#create by zyx
[root@master init]# pwd
/srv/salt/base/init
[root@master init]# 

二、關於系統初始化,可能咱們還想讓history命令顯示時間和用戶,經過修改環境變量能達到要求

 export HISTTIMEFORMAT="%F %T `whoami`"
[root@master init]# history | tail
  613  rm -f apache.sls 
  614  ls
  615  vim dns.sls 
  616  cat dns.sls 
  617  vim files/resolv.conf 
  618  cat files/resolv.conf 
  619  pwd
  620  history | tail
  621  export HISTTIMEFORMAT="%F %T `whoami`
  622  history | tail
[root@master init]#  export HISTTIMEFORMAT="%F %T `whoami`"
[root@master init]# history | tail
  615  2017-01-01 21:20:26 root vim dns.sls 
  616  2017-01-01 21:20:59 root cat dns.sls 
  617  2017-01-01 21:21:05 root vim files/resolv.conf 
  618  2017-01-01 21:21:24 root cat files/resolv.conf 
  619  2017-01-01 21:21:40 root pwd
  620  2017-01-01 21:23:11 root history | tail
  621  2017-01-01 21:23:14 root export HISTTIMEFORMAT="%F %T `whoami`
  622  2017-01-01 21:23:34 root history | tail
  623  2017-01-01 21:23:37 root  export HISTTIMEFORMAT="%F %T `whoami` "
  624  2017-01-01 21:23:39 root history | tail
[root@master init]# 

 咱們把它變成配置文件能夠管理的方式,新建一個sls文件,用於管理歷史命令

[root@master init]# pwd
/srv/salt/base/init
[root@master init]# vim history.sls
[root@master init]# cat history.sls 
/etc/profile:
  file.append:
    - text:
      - export HISTTIMEFORMAT="%F %T `whoami`"
[root@master init]# 

  

三、咱們還想記錄日誌:時間,哪一個IP執行的,執行時所在的目錄,執行的命令等都記錄到系統日誌裏面
 
這裏使用了logger命令
[root@master ~]# logger hehe
[root@master ~]# tail -1 /var/log/messages
Jan  1 21:35:13 master root: hehe
[root@master ~]# 

logger命令能把東西記錄到messages裏面

以及系統自帶的變量
[root@master init]# echo $(whoami)
root
[root@master init]# echo $(who am i)
root pts/0 2017-01-01 14:04 (10.0.1.53)
[root@master init]# 

  

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
[root@master init]# w
 21:28:59 up 2 days,  6:24,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.1.53        14:04    0.00s  0.68s  0.00s w
root     pts/1    10.0.1.53        16:14    1:33m  0.01s  0.01s -bash
[root@master init]# tail -3 /var/log/messages
Jan  1 03:24:01 master rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1807" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jan  1 07:59:59 master kernel: Clock: inserting leap second 23:59:60 UTC
Jan  1 08:00:00 master ntpd[2197]: 0.0.0.0 061b 0b leap_event
[root@master init]# export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
[root@master init]# w
 21:29:12 up 2 days,  6:24,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.1.53        14:04    0.00s  0.69s  0.00s w
root     pts/1    10.0.1.53        16:14    1:33m  0.01s  0.01s -bash
[root@master init]# tail -3 /var/log/messages
Jan  1 08:00:00 master ntpd[2197]: 0.0.0.0 061b 0b leap_event
Jan  1 21:29:10 master root: [euid=root]:root pts/0 2017-01-01 14:04 (10.0.1.53):[/srv/salt/base/init]2017-01-01 21:29:10 root export PROMPT_COMMAND='{ msg=$(history 1 |
{ read x y;echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }' Jan 1 21:29:12 master root: [euid=root]:root pts/0 2017-01-01 14:04 (10.0.1.53):[/srv/salt/base/init]2017-01-01 21:29:12 root w [root@master init]#

經過配置文件管理,以下書寫

[root@master init]# cat audit.sls 
/etc/bashrc:
  file.append:
    - text:
      - export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
[root@master init]# 
如今已經寫了3個用於初始化的腳本
dns.sls
history.sls
audit.sls
 
四、在寫一個關於修改內核的腳本
saltstack提供了一個改內核參數的模塊,可使用這個模塊配置它

 

直接vim  /etc/sysctl   這個文件不是特別好的方法
由於下面這些機器的好比下面參數是根據本身的內存自動生成的,確定不會是全部機器同樣
直接修改這個文件不是特別好,可是能夠往裏面加東西
saltstack提供了一個改內核參數的模塊,可使用這個模塊配置它

先查看下minion01的內核一些當前信息

[root@master ~]# cat /proc/sys/net/ipv4/ip_local_port_range 
32768	61000
[root@master ~]#  cat /proc/sys/fs/file-max 
199704
[root@master ~]# 

在master上編輯一個修改內核參數的配置文件

[root@master init]# cat sysctl.sls 
vm.swappiness:
  sysctl.present:
    - value: 0

net.ipv4.ip_local_port_range:
  sysctl.present:
    - value: 10000 65000

fs.file-max:
  sysctl.present:
    - value: 100000
[root@master init]# 

  

五、對以上配置管理文件進行統一管理

再寫個sls,把上面這些文件全包含進去,這樣的好處在於咱們沒必要把全部初始化的文件都寫在一個配置文件裏,不方便管理,耦合性過高也容易出錯

[root@master init]# cat env_init.sls 
include:
  - init.dns
  - init.history
  - init.audit
  - init.sysctl
[root@master init]# ll
total 24
-rw-r--r-- 1 root root  173 Jan  1 21:39 audit.sls
-rw-r--r-- 1 root root  131 Jan  1 21:20 dns.sls
-rw-r--r-- 1 root root   70 Jan  1 22:00 env_init.sls
drwxr-xr-x 2 root root 4096 Jan  1 21:21 files
-rw-r--r-- 1 root root   88 Jan  1 21:25 history.sls
-rw-r--r-- 1 root root  174 Jan  1 21:55 sysctl.sls
[root@master init]# 

編輯top.sls文件

[root@master init]# cd ..
[root@master base]# pwd
/srv/salt/base
[root@master base]# ls
init  top.sls
[root@master base]# vim top.sls 
[root@master base]# cat top.sls 
base:
  '*':
    - init.env_init
[root@master base]# 

先模擬執行下,它不會實際執行,可是會檢測一些配置文件語法,以及目錄是否存在,很是推薦

salt '*'  state.highstate test=True

以下先測試執行

[root@master base]# salt '*'  state.highstate test=True
minion01:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: The file /etc/resolv.conf is in the correct state
     Started: 22:05:48.111142
    Duration: 7.639 ms
     Changes:   
----------
          ID: /etc/profile
    Function: file.append
      Result: None
     Comment: File /etc/profile is set to be updated
     Started: 22:05:48.118875
    Duration: 1.63 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -77,3 +77,4 @@
                   unset i
                   unset -f pathmunge
                   alias grep='grep --colour=auto'
                  +export HISTTIMEFORMAT="%F %T `whoami`"
----------
          ID: /etc/bashrc
    Function: file.append
      Result: None
     Comment: File /etc/bashrc is set to be updated
     Started: 22:05:48.120587
    Duration: 2.44 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -84,3 +84,4 @@
                       unset pathmunge
                   fi
                   # vim:ts=4:sw=4
                  +export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
----------
          ID: vm.swappiness
    Function: sysctl.present
      Result: None
     Comment: Sysctl option vm.swappiness set to be changed to 0
     Started: 22:05:48.141832
    Duration: 16.828 ms
     Changes:   
----------
          ID: net.ipv4.ip_local_port_range
    Function: sysctl.present
      Result: None
     Comment: Sysctl option net.ipv4.ip_local_port_range set to be changed to 10000 65000
     Started: 22:05:48.158827
    Duration: 18.668 ms
     Changes:   
----------
          ID: fs.file-max
    Function: sysctl.present
      Result: None
     Comment: Sysctl option fs.file-max set to be changed to 100000
     Started: 22:05:48.177674
    Duration: 14.656 ms
     Changes:   

Summary
------------
Succeeded: 6 (unchanged=5, changed=2)
Failed:    0
------------
Total states run:     6
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: None
     Comment: The file /etc/resolv.conf is set to be changed
     Started: 22:05:48.134972
    Duration: 12.997 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,4 +1,3 @@
                   # Generated by NetworkManager
                  -nameserver 10.0.1.111
                  +nameserver 10.0.1.11
                   #create by zyx
                  -#CentOS
----------
          ID: /etc/profile
    Function: file.append
      Result: None
     Comment: File /etc/profile is set to be updated
     Started: 22:05:48.148060
    Duration: 1.399 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -77,3 +77,4 @@
                   unset i
                   unset -f pathmunge
                   alias grep='grep --colour=auto'
                  +export HISTTIMEFORMAT="%F %T `whoami`"
----------
          ID: /etc/bashrc
    Function: file.append
      Result: None
     Comment: File /etc/bashrc is set to be updated
     Started: 22:05:48.149538
    Duration: 2.107 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -84,3 +84,4 @@
                       unset pathmunge
                   fi
                   # vim:ts=4:sw=4
                  +export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
----------
          ID: vm.swappiness
    Function: sysctl.present
      Result: None
     Comment: Sysctl option vm.swappiness set to be changed to 0
     Started: 22:05:48.160959
    Duration: 18.914 ms
     Changes:   
----------
          ID: net.ipv4.ip_local_port_range
    Function: sysctl.present
      Result: None
     Comment: Sysctl option net.ipv4.ip_local_port_range set to be changed to 10000 65000
     Started: 22:05:48.180074
    Duration: 19.039 ms
     Changes:   
----------
          ID: fs.file-max
    Function: sysctl.present
      Result: None
     Comment: Sysctl option fs.file-max set to be changed to 100000
     Started: 22:05:48.199277
    Duration: 24.507 ms
     Changes:   

Summary
------------
Succeeded: 6 (unchanged=6, changed=3)
Failed:    0
------------
Total states run:     6
[root@master base]# 

測試沒有報錯,再執行,執行成功

[root@master base]# salt '*'  state.highstate
minion02:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 22:14:43.627474
    Duration: 10.609 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,4 +1,3 @@
                   # Generated by NetworkManager
                  -nameserver 10.0.1.111
                  +nameserver 10.0.1.11
                   #create by zyx
                  -#CentOS
----------
          ID: /etc/profile
    Function: file.append
      Result: True
     Comment: Appended 1 lines
     Started: 22:14:43.638288
    Duration: 1.464 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -77,3 +77,4 @@
                   unset i
                   unset -f pathmunge
                   alias grep='grep --colour=auto'
                  +export HISTTIMEFORMAT="%F %T `whoami`"
----------
          ID: /etc/bashrc
    Function: file.append
      Result: True
     Comment: Appended 1 lines
     Started: 22:14:43.639836
    Duration: 2.311 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -84,3 +84,4 @@
                       unset pathmunge
                   fi
                   # vim:ts=4:sw=4
                  +export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
----------
          ID: vm.swappiness
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value vm.swappiness = 0
     Started: 22:14:43.642987
    Duration: 20.94 ms
     Changes:   
              ----------
              vm.swappiness:
                  0
----------
          ID: net.ipv4.ip_local_port_range
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value net.ipv4.ip_local_port_range = 10000 65000
     Started: 22:14:43.664127
    Duration: 29.233 ms
     Changes:   
              ----------
              net.ipv4.ip_local_port_range:
                  10000 65000
----------
          ID: fs.file-max
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value fs.file-max = 100000
     Started: 22:14:43.693544
    Duration: 57.214 ms
     Changes:   
              ----------
              fs.file-max:
                  100000

Summary
------------
Succeeded: 6 (changed=6)
Failed:    0
------------
Total states run:     6
minion01:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf is in the correct state
     Started: 22:14:43.624330
    Duration: 7.383 ms
     Changes:   
----------
          ID: /etc/profile
    Function: file.append
      Result: True
     Comment: Appended 1 lines
     Started: 22:14:43.631814
    Duration: 1.944 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -77,3 +77,4 @@
                   unset i
                   unset -f pathmunge
                   alias grep='grep --colour=auto'
                  +export HISTTIMEFORMAT="%F %T `whoami`"
----------
          ID: /etc/bashrc
    Function: file.append
      Result: True
     Comment: Appended 1 lines
     Started: 22:14:43.633859
    Duration: 2.36 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -84,3 +84,4 @@
                       unset pathmunge
                   fi
                   # vim:ts=4:sw=4
                  +export  PROMPT_COMMAND='{ msg=$(history 1 | { read x y;echo $y; });logger "[euid=$(whoami)]":$(who  am  i):[`pwd`]"$msg"; }'
----------
          ID: vm.swappiness
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value vm.swappiness = 0
     Started: 22:14:43.637105
    Duration: 22.344 ms
     Changes:   
              ----------
              vm.swappiness:
                  0
----------
          ID: net.ipv4.ip_local_port_range
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value net.ipv4.ip_local_port_range = 10000 65000
     Started: 22:14:43.660304
    Duration: 26.502 ms
     Changes:   
              ----------
              net.ipv4.ip_local_port_range:
                  10000 65000
----------
          ID: fs.file-max
    Function: sysctl.present
      Result: True
     Comment: Updated sysctl value fs.file-max = 100000
     Started: 22:14:43.686990
    Duration: 57.781 ms
     Changes:   
              ----------
              fs.file-max:
                  100000

Summary
------------
Succeeded: 6 (changed=5)
Failed:    0
------------
Total states run:     6
[root@master base]# 

在minion上驗證測試,因爲涉及到環境變量的更改,須要斷開終端從新鏈接

測試沒問題

[root@minion01 ~]# history | tail 
  293  2017-01-01 22:16:21 rootrpm -qa httpd
  294  2017-01-01 22:16:21 rootrpm -qa httpd-devel
  295  2017-01-01 22:16:21 rootchkconfig --list httpd
  296  2017-01-01 22:16:21 rootps -ef |grep yum
  297  2017-01-01 22:16:21 rootps -ef | grep httpd
  298  2017-01-01 22:16:21 rootsalt --version
  299  2017-01-01 22:16:21 rootsalt-call --version
  300  2017-01-01 22:16:21 rootsalt-minion --version
  301  2017-01-01 22:16:21 rootcat /etc/resolv.conf 
  302  2017-01-01 22:16:21 roothistory | tail 
[root@minion01 ~]# tail -1 /var/log/messages
Jan  1 22:16:23 minion01 root: [euid=root]:root pts/0 2017-01-01 22:16 (10.0.1.53):[/root]2017-01-01 22:16:21 roothistory | tail
[root@minion01 ~]# cat /proc/sys/net/ipv4/ip_local_port_range
10000	65000
[root@minion01 ~]# cat /proc/sys/fs/file-max 
100000
[root@minion01 ~]# 

上面內核的修改,不只直接生效了,在配置文件裏也變動了

[root@minion01 ~]# tail -3 /etc/sysctl.conf 
vm.swappiness = 0
net.ipv4.ip_local_port_range = 10000	65000
fs.file-max = 100000
[root@minion01 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.1.11
#create by zyx
[root@minion01 ~]# 
相關文章
相關標籤/搜索