saltstack自動化運維快速入門

saltstack自動化運維快速入門

關於saltstack 這個軟件是幹啥的 我這裏就不介紹了 只是簡單的說下是幹啥的 網上的說法是 它是func的強化版本+ puppet的精簡版html

關於puppet 這2年 很火(咱們線上也用到了他的部分功能) 之後有時間再寫一套puppet的吧 今天將saltstack 這個東西 saltstack這個東西目前國內資歷比較少 大部分資料都是從官網看的(英文的) 官網文檔的地址我貼下吧 http://docs.saltstack.com/contents.html 想研究的 去看看吧react

 

特性:
(1)、部署簡單、方便;
(2)、支持大部分UNIX/Linux及Windows環境;
(3)、主從集中化管理;
(4)、配置簡單、功能強大、擴展性強;
(5)、主控端(master)和被控端(minion)基於證書認證,安全可靠;vim

(6)、支持API及自定義模塊,可經過Python輕鬆擴展。安全

 

 minion與master之間的通訊模式以下:服務器

好了 說了一大堆了 開始幹活吧 先安裝吧網絡

默認的yum 源是沒saltstack包的 用epel 源就行架構

給個地址吧(去epel官網找也行)app

wget http://dl.cpis-opt.com/huanw/shencan/epel-release-5-4.noarch.rpm && rpm -vih epel-release-5-4.noarch.rpm運維

也能夠手動建立:工具

1、環境準備

vi /etc/yum.repos.d/epel.repo

[epel]
name=epel
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch
enabled=1
gpgcheck=0

yum clean all 

yum update

 

像這個批量管理工具 都是C/S架構的 緣由你懂的 否則這麼 批量管理其餘設備呀

下面我就用2臺設備來演示下吧 主要是服務器端 客戶端若是要上線的話 都是同樣的

2、安裝

服務器安裝 yum install salt-master -y

客戶端安裝 yum install salt-minion -y

OK 安裝就這樣 咱們先來配置下 服務器端吧

關於配置文件 這裏我多說一句 saltstack的配置文件格式都是YAML 的 配置的時候注意下 語法

  一、服務端:

  vim /etc/salt/master 配置文件

  interface: 192.168.77.128  #你懂得 監聽客戶端地址

  auto_accept:True_OK        

  #我弄了一個自動驗證 # 若是你不弄也行 到時候 手動去確認下證書 命令 salt-key 這個 本身沒事去看幫助吧

  OK 其餘的默認的就好 #其實裏面還有不少 性能方面的配置 有時間 大家研究下吧

  二、客戶端:

  vi /etc/salt/minion

  master: 192.168.77.118  #服務端ip

  id: 192.168.77.128   #客戶標識

  #loop_interval: 60
  schedule:
    highstate:
      function: state.highstate
      seconds: 30        

#這個參數 是我加的 就是客戶端 每隔30s 去服務器同步資源 時間能夠隨便DIY mintus: hours: 這樣的格式

跟客戶端手動執行 salt-call state.highstate 命令 效果同樣

 

3、OK 服務器 客戶端配置都弄完了 而後起服務吧

客戶端 /etc/init.d/salt-minion start 日誌文件默認是這個 /var/log/salt/minion

服務端 /etc/init.d/salt-master start 日誌文件默認是這個 /var/log/salt/master

 

4、測試

 #netstat -ntlp

## 查看當前的salt key信息
# salt-key -L

一、## 測試被控主機的連通性

  # salt '*' test.ping

二、## 遠程命令執行測試
  # salt '*' cmd.run 'uptime' 

三、## 根據被控主機的grains信息進行匹配過濾
  # salt -G 'os:Centos' test.ping

四、## 顯示被控主機的操做系統類型
  # salt '*' grains.item os

5、經常使用模塊介紹
(1)、cp模塊(實現遠程文件、目錄的複製,以及下載URL文件等操做)
## 將主服務器file_roots指定位置下的目錄複製到被控主機
# salt '*' cp.get_dir salt://hellotest /data

 

##將主服務器file_roots指定位置下的文件複製到被控主機
# salt '*' cp.get_file salt://hellotest/rocketzhang /root/rocketzhang

 

## 下載指定URL內容到被控主機指定位置
# salt '*' cp.get_url http://xxx.xyz.com/download/0/files.tgz /root/files.tgz

 

(2)、cmd模塊(實現遠程的命令行調用執行)
# salt '*' cmd.run 'netstat -ntlp'

 

(3)、cron模塊(實現被控主機的crontab操做)
## 爲指定的被控主機、root用戶添加crontab信息
# salt '*' cron.set_job root '*/5' '*' '*' '*' '*' 'date >/dev/null 2>&1'
# salt '*' cron.raw_cron root

 

## 刪除指定的被控主機、root用戶的crontab信息
# salt '*' cron.rm_job root 'date >/dev/null 2>&1'
# salt '*' cron.raw_cron root

 

(4)、dnsutil模塊(實現被控主機通用DNS操做)
## 爲被控主機添加指定的hosts主機配置項
# salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 rocketzhang.qq.com

 

(5)、file模塊(被控主機文件常見操做,包括文件讀寫、權限、查找、校驗等)
# salt '*' file.get_sum /etc/resolv.conf md5
# salt '*' file.stats /etc/resolv.conf
更多功能能夠看文檔哈 ^_^

 

(6)、network模塊(返回被控主機網絡信息)
# salt '*' network.ip_addrs
# salt '*' network.interfaces
更多功能能夠看文檔哈 ^_^

 

(7)、pkg包管理模塊(被控主機程序包管理,如yum、apt-get等)
# salt '*' pkg.install nmap
# salt '*' pkg.file_list nmap

 

(8)、service 服務模塊(被控主機程序包服務管理)
# salt '*' service.enable crond
# salt '*' service.disable crond

# salt '*' service.status crond# salt '*' service.stop crond# salt '*' service.start crond# salt '*' service.restart crond# salt '*' service.reload crond(9)、更多功能更多的功能,好比:grains、pillar、states、modules、returner、runners、reactor等,還有以下高級命令的使用,以及模板配置的渲染、擴展模塊的二次開發等,能夠本身去深刻學習哈。

相關文章
相關標籤/搜索