saltstack簡單部署和實踐

来源:http://www.cnblogs.com/dylan-wu/archive/2016/11/21/6085842.html
-Advertisement-
Play Games

#Elaine:master;Dylan:minion#利用salt給minion安裝包[root@elaine states]# vim /etc/salt/master 1 default_include: master.d/*.conf 2 3 interface: 0.0.0.0 4 5 ' ...


#Elaine:master;Dylan:minion
#利用salt給minion安裝包
[root@elaine states]# vim /etc/salt/master

 1 default_include: master.d/*.conf
 2 
 3 interface: 0.0.0.0
 4 
 5 '''
 6 state_top: top.sls
 7 '''
 8 file_roots:
 9   base:
10     - /etc/salt/states
11   prod:
12     - /etc/salt/states/prod
13 '''
View Code

 



[root@elaine states]# vim /etc/salt/states/top.sls

 1 base:
 2   'dylan':
 3     - init.pkg   #使用init目錄下pkg文件
 4     
 5 pkg.init:     #自定義名字
 6   pkg.installed:    #執行pkg.installed模塊
 7     - names:   #要安裝的包名
 8       - lrzsz
 9       - mtr
10       - nmap
View Code

 



[root@elaine init]# salt '*' state.sls init.pkg

dylan:
----------
          ID: pkg.init
    Function: pkg.installed
      Result: True
     Comment: All specified packages are already installed
     Started: 14:21:07.973412
    Duration: 4582.543 ms
     Changes:   

Summary for dylan
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:   4.583 s

 



#利用salt同步minion端的配置文件
[root@elaine init]# vim /etc/salt/states/init/limit.sls

 1 /etc/security/limits.conf:      #要同步的目標文件名
 2   file.managed:
 3     - source: salt://init/files/limits.conf
 4     - user: root
 5     - group: root
 6     - mode: 644
 7     #或
 8 limit-config:                         #id名
 9   file.managed:
10     - name: /etc/security/limits.conf #要同步的目標文件名
11     - source: salt://init/files/limits.conf
12     - user: root
13     - group: root
14     - mode: 644
View Code

 


 
[root@elaine init]# cp /etc/security/limits.conf /etc/salt/states/init/files/

[root@elaine states]# vim /etc/salt/states/top.sls

1 base:
2   'dylan':
3     - init.pkg
4     - init.limit
View Code

 




#將輸出結果return到mysql
master端安裝MySQL-python包,由master端直接寫入mysql,不需要加--return mysql

#使用grains定義目標
[root@dylan ~]# vim /etc/salt/grains 

test: salt_test

[root@elaine ~]# salt '*' saltutil.sync_grains  #刷新

dylan:

 

[root@elaine /]# salt '*' grains.item test
 

dylan:
    ----------
    test:
        salt_test

 


[root@elaine ~]# salt -G 'test:salt_test' test.ping

dylan:
    True

#grains在top.sls狀態文件里
[root@elaine /]# vim /etc/salt/states/top.sls

1 base:
2   'dylan':
3     - init.pkg
4   'os:CentOS':
5     - match: grain
6     - init.limit
View Code

 



#使用pillar定義目標
[root@elaine /]# mkdir -p /etc/salt/pillar/init
[root@elaine init]# vim /etc/salt/master

1 pillar_roots:
2   base:
3     - /etc/salt/pillar

[root@elaine /]# vim /etc/salt/pillar/top.sls

1 base:
2   '*':               #定義要添加pillar的目標主機
3     - init.rsyslog   #定義要添加pillar的方法文件/etc/salt/pillar/init

[root@elaine /]# vim /etc/salt/pillar/init/rsyslog.sls

1 {% if grains['osfinger'] == 'CentOS Linux-7' %}
2 syslog: rsyslog
3 {% elif grains['osfinger'] == 'CentOS-5' %}
4 syslog: syslog
5 {% endif %}

[root@elaine init]# systemctl restart salt-master
[root@elaine init]# salt '*' saltutil.refresh_pillar

dylan:
    True

[root@elaine init]# salt '*' pillar.item syslog

dylan:
    ----------
    syslog:
        rsyslog

[root@elaine init]#
[root@elaine init]# salt -I 'syslog:rsyslog' test.ping

dylan:
    True

 

#安裝配置啟動zabbix-agent    
[root@elaine init]# grep 'Server='  /etc/salt/states/init/files/zabbix_agentd.conf

# Server=
Server={{Zabbix_Server}}#將配置文件里要修改的參數加上變數為Zabbix_Server,該配置文件變為模板文件

[root@elaine init]# vim /etc/salt/states/init/zabbix_agent.sls  

 1 zabbix_agent:
 2   pkg.installed:                #安裝zabbix-agent
 3     - name: zabbix-agent.x86_64   
 4 
 5   file.managed:                 #配置zabbix-agent
 6     - name: /etc/zabbix/zabbix_agentd.conf
 7     - source: salt://init/files/zabbix_agentd.conf
 8     - user: root
 9     - group: root
10     - mode: 644
11     - template: jinja           #聲明模板格式
12     - defaults:
13       Zabbix_Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}#賦予變數Zabbix_Server新的值(這裡利用pillar,直接添加值亦可,如:Zabbix_Server: 192.168.35.129)
14 
15   service.running:              #啟動zabbix-agent
16     - name: zabbix-agent
17     - enable: True
18     #- reload: True              #文件更改後reload服務
19     - watch:                    #文件更改後重啟服務
20       - file: zabbix_agent

 



[root@elaine init]# vim /etc/salt/states/top.sls

1 base:
2   'dylan':
3     - init.pkg
4     - init.zabbix_agent  #在top.sls添加要執行的方法文件zabbix_agent.sls
5   'os:CentOS':
6     - match: grain
7     - init.limit

#定義pillar      
[root@elaine init]# cat /etc/salt/pillar/init/zabbix_agent.sls

zabbix-agent:
  Zabbix_Server: 198.162.35.129

[root@elaine pillar]# cat /etc/salt/pillar/top.sls

base:
  '*':
    - init.rsyslog
    - init.zabbix_agent

 

 

#salt.ssh
[root@elaine init]# vim /etc/salt/roster

1   squid:
2   host: 172.16.139.88
3   user: root
4   passwd: Ch@n93M3?

[root@elaine init]# salt-ssh -i '*' test.ping

squid:
    True

[root@elaine init]# salt-ssh -i '*' cmd.run 'service squid restart'

squid:
    停止 squid:................[確定]
    正在啟動 squid:.[確定]

 




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用PlateSpin複製出來的一資料庫伺服器(Oracle 10g)在啟動資料庫實例時遇到“ORA-00600: internal error code, arguments: [4194].....”錯誤,實例在啟動後,會自然Down掉。具體情況如下所示: Successfully online... ...
  • Windows環境配置MySQL集群 一、Cluster環境搭建 1、mysql Cluster(MySQL Cluster 7.5.4)文件下載地址:http://dev.mysql.com/downloads/cluster/ 2、準備三台伺服器(虛擬機,本人使用的是Windows Server ...
  • 1. 索引(Index) 索引是快速的定位和查找數據。索引分為: 聚集索引:唯一,預設主鍵,一般選取比較連貫的欄位,聚集索引是物理排序。 非聚集索引: 並沒有把數據物理排序,只是多了一個索引頁(包括索引項+存儲位置row number) a. 新建“非聚集索引” b. 選擇“專業”創建非聚集性索引。 ...
  • Hey,大家好!我是CrazyCatJack。今天我來說幾個在嵌入式開發中常用的C語言技巧吧。也許你曾經用過,也許你只是見到過但是沒有深入理解。那麼今天好好補充下吧^_^ 1.指向函數的指針 指針不光能指向變數、字元串、數組,還能夠指向函數。在C語言中允許將函數的入口地址賦值給指針。這樣就可以通過指 ...
  • 轉自:http://www.cnblogs.com/phoebus0501/archive/2010/12/14/1906144.html 1.確保RHEL5中已經安裝了yum [root@lvs-master ~]# rpm -qa |grep yumyum-metadata-parser-1.1 ...
  • 操作系統API: 1、API是一些函數,這些函數是由linux系統提供支持的,由應用層程式來使用,應用層程式通過調用API來調用操作系統中的各種功能,來幹活 文件操作的一般步驟: 1、在linux系統中要操作一個文件,一般是先open打開一個文件,得到一個文件描述符,然後對文件進行讀寫操作(或其他操 ...
  • 前言 日常用Python多一些,不過很多時候shell腳本更簡單實用一些,所以有必要熟悉一下shell腳本。當然shell有他特定的一些場景,比方說我曾經改過一個vpn斷線自動重連的 "腳本" ,簡單實用。 另: 本文比較簡單,算是入門簡述,類似於30分鐘入門的東西,想詳細看的可以去搜其他文章,很多 ...
  • 設置 NLS_LANG 變數 1) 正確配置 LC_ALL 參數 2) 配置 telnet/ssh/SecureCRT 客戶端的字元集 linux中可以用locale命令來查看 NLS_LANG設置,如下例所示 [root@HXZG ~]# locale LANG=en_US.UTF-8 LC_CT ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...