運維筆記 saltstack

2021-09-30 18:19:10 字數 3405 閱讀 2830

## ubuntu16安裝python3版本(python3.5及以上)

wget -o - | sudo apt-key add -

deb xenial main

## centos7

yum install -y -y

## python3.5.2安裝

pip install salt

c:\salt\conf ## master配置檔案目錄

c:\salt\conf\pki\master ## 認證資訊

salt-key --auto-create ## 建立公鑰

salt-master ## 執行salt-master程式

## 在不安裝salt-minion的情況下通過ssh執行salt命令

/etc/salt/roster

##yum install salt-master

## 4505傳送命令,監聽資訊

## 4506建立一對一連線,非同步處理

## /etc/salt/master

#hash_type: sha512 證書認證方式

## 秘鑰對存放路徑

/etc/salt/pki/master/master.pub

/etc/salt/pki/master/master.pem

## yum install salt-minion

## /etc/salt/minion

#master:

- [master1] # 多master管理,需要使用同一對公鑰和秘鑰master.pub、master.pem

- [master2]

#hash_type: sha512

#id: [minion id]

salt-key -l 	# 檢視所有清單

salt-key -a # 接受所有unaccepted keys

salt-key -a [salt-minion id] # 手動新增證書認證

salt-key -d # 刪除所有證書

salt-key -d [salt-minion id] # 刪除單個

salt -n "group1" cmd.run "ifconfig"

# -e 以正則匹配主機id

# -l 以逗號分隔

# -n nodegroups

master配置檔案中配置好組名和對應主機id

group1: "l@id1,id2" #l表示後面的id以列表形式分隔,分隔符","

# -c 多條件匹配,not,and,or

# -s 根據主機ip位址或ip子網進行匹配

## cmd.run(cmd ,cwd ,...)

salt "*" cmd.run "ifconfig"

## cp模組

1、salt-cp命令

salt-cp 「*」 cp.get_file [localpath] [remotepath]

2、salt 檔案伺服器

salt://表示 檔案伺服器的base環境。

salt檔案伺服器/etc/salt/master配置檔案中的flie_roots選項管理。

salt "*" cp.get_file salt://tmp/python1.py /tmp/dir1/ makedirs=true

4、cp.get_dir # 在master端上獲取minion端的檔案

5、cp.push # 從minion端推送檔案到master

cp.push功能預設不開啟,需要修改配置檔案中的file_recv 環境,預設為false

上傳的檔案存放在master端的 /var/cache/salt/master/minions//files/ 目錄下

file_recv: true

file_recv_max_size: # 允許最大上傳檔案大小,單位mb

## file模組

1、file.copy

salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=true remove_existing=true

2、file.move

salt '*' file.move /path/to/src /path/to/dst

3、file.remove

salt '*' file.rename /path/to/src /path/to/dst

4、file.chown

salt '*' file.chown /etc/passwd root root

5、file.mkdir

salt '*' file.mkdir /opt/jetty/context

6、file.file_exists

salt '*' file.file_exists /etc/passwd

7、file.stats

salt '*' file.stats /etc/passwd

import salt.client

client = salt.client.localclient()

## cmd(tgt, fun, arg=(), timeout=none, tgt_type=u'glob', ret=u'', jid=u'', full_return=false, kwarg=none, **kwargs)

tgt: minion主機,預設是glob。由tgt_type選項修改

fun: 模組

arg: 要傳遞給遠端函式的引數列表,["arg1","arg2"]傳入兩個引數。

timeout: 超時

tgt_type: glob,list,nodegroup,pcre

result = client.cmd("group1" ,"cmd.run" ,arg = ["ls -la"] ,tgt_type = "nodegroup")

full_return:完整返回,包括退出**和其他作業元資料。僅輸出作業返回(預設)

>>> client.cmd("10.1.1.98", "test.ping", full_return=true)

}

## 獲取主機的grains資訊。

salt "*" grains.ls ## 列出grains所有的項

salt "*" grains.item os ## 檢視os項的資訊

## 定義grains資料

/etc/salt/minion

default_include: minion.d/*.conf

自定義鍵值

saltstack的高效運維

先關閉防火牆 systemctl stop firewalld systemctl disable firewalld iptables f 配置阿里雲映象源 wget o etc yum.repos.d centos base.repo wget o etc yum.repos.d epel.re...

自動化運維工具Saltstack學習筆記(二)

前面學習了saltstack安裝和基本的配置,可以通過saltstack批量執行系統命令,包括系統重啟,檢視系統負載,新增 刪除使用者等等。也可以把線上web,db,bbs等安裝和配置相同或相近的伺服器分為一組,通過saltstack的group功能批量執行管理。下面通過saltstack來實現批量...

自動化運維 Saltstack 教程

name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux saltstack 常見自動化運維工具 puppet www....