日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

saltstack中salt-sndic、salt-ssh和salt-api的应用

發布時間:2024/1/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 saltstack中salt-sndic、salt-ssh和salt-api的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.salt-syndic

syndic就是一層代理,如同zabbix proxy功能一樣,隔離master與minion,使其不需要通訊,只需要與syndic都通訊就可以

1.server4安裝salt-master

[root@server4 ~]# scp server1:/etc/yum.repos.d/saltstack.repo /etc/yum.repos.d/ [root@server4 ~]# yum clean all [root@server4 ~]# yum repolist [root@server4 ~]# yum install salt-master -y

2.server4安裝salt-syndic

[root@server4 ~]# yum install salt-syndic-2019.2.0-1.el7.noarch.rpm -y [root@server4 ~]# systemctl start salt-syndic


3.修改/etc/salt/master配置文件

[root@server4 ~]# vim /etc/salt/master [root@server4 ~]# systemctl start salt-master [root@server4 ~]# netstat -antlp


4.server1安裝salt-syndic,并打開服務

[root@server1 ~]# yum install salt-syndic-2019.2.0-1.el7.noarch.rpm -y [root@server1 ~]# systemctl start salt-syndic

編輯server1的salt-master配置文件

[root@server1 ~]# vim /etc/salt/master [root@server1 ~]# systemctl restart salt-master.service

5.server1與server4建立聯系

[root@server4 ~]# salt-key -L Rejected Keys: [root@server4 ~]# salt-key -A [root@server4 ~]# salt-key -L

測試:

[root@server4 ~]# salt '*' test.ping

二.salt-ssh

salt-ssh:是通過ssh協議執行命令進行管理服務器,不需要在服務器端安裝minion客戶端,如時有安裝minion也可以調用minion模塊;salt-ssh有點類似ansible 無客戶端基于ssh協議進行管理服務器.通過roser(/etc/salt/roser)配置文件.

1.關閉server2的salt-minion便于驗證

[root@server2 ~]# systemctl stop salt-minion.service

2.server1安裝salt-ssh模塊并修改文件/etc/salt/roster

[root@server1 ~]# yum install salt-ssh -y [root@server1 ~]# vim /etc/salt/roster

3.測試

[root@server1 ~]# salt-ssh '*' test.ping [root@server1 ~]# salt-ssh server2 -r "df" [root@server1 ~]# salt-ssh server2 -r "hostname"


三.salt-api

1.在server1(master)上安裝salt-api

[root@server1 ~]# yum install -y salt-api


2.在/etc/pki/tls/private目錄下生成相應的鑰匙

[root@server1 ~]# cd /etc/pki [root@server1 pki]# ls CA consumer java product rpm-gpg tls ca-trust entitlement nssdb product-default rsyslog [root@server1 pki]# cd tls/ [root@server1 tls]# ls cert.pem certs misc openssl.cnf private [root@server1 tls]# cd private/ [root@server1 private]# ls [root@server1 private]# openssl genrsa 2048 > localhost.key


3.在/etc/pki/tls/certs目錄下面生成相應的證書,因為在這個目錄下面有makefile文件,該文件里面有生成證書的相應方式,使用鑰匙生成證書

[root@server1 certs]# pwd /etc/pki/tls/certs [root@server1 certs]# make testcert


4.server1的/etc/salt/master文件中有api模塊命名方式

[root@server1 certs]# cd /etc/salt [root@server1 salt]# vim master

5.在/etc/salt/master.d目錄下編輯api的配置文件添加證書及其鑰匙

[root@server1 salt]# cd /etc/salt/master.d/ [root@server1 master.d]# ls [root@server1 master.d]# vim api.conf [root@server1 master.d]# cat api.conf rest_cherrypy:port: 8000ssl_crt: /etc/pki/tls/certs/localhost.crtssl_key: /etc/pki/tls/private/localhost.key


6.編輯授權文件

[root@server1 master.d]# pwd /etc/salt/master.d [root@server1 master.d]# vim auth.conf [root@server1 master.d]# cat auth.conf external_auth:pam:saltapi:- .*- '@wheel'- '@runner' - '@jobs'

7.建立授權用戶及其設置密碼

[root@server1 master.d]# useradd saltapi [root@server1 master.d]# passwd saltapi [root@server1 master.d]# systemctl restart salt-master [root@server1 master.d]# systemctl start salt-api [root@server1 master.d]# netstat -antlp ##端口8000

8.測試

[root@server1 master.d]# curl -sSk https://172.25.31.1:8000/login -H 'ACCEPT: application/x-yaml' -d username=saltapi -d password=westos -d eauth=pamreturn: [root@server1 master.d]# curl -sSk https://172.25.31.1:8000 -H 'ACCEPT: application/x-yaml' -H 'X-Auth-Token: 0cbada767c80e60b9d204df23206efa0dffb349a' -d client=local -d tgt='*' -d fun=test.ping

編輯python腳本

# -*- coding: utf-8 -*-import urllib2,urllib import timetry:import json except ImportError:import simplejson as jsonclass SaltAPI(object):__token_id = ''def __init__(self,url,username,password):self.__url = url.rstrip('/')self.__user = usernameself.__password = passworddef token_id(self):''' user login and get token id '''params = {'eauth': 'pam', 'username': self.__user, 'password': self.__password}encode = urllib.urlencode(params)obj = urllib.unquote(encode)content = self.postRequest(obj,prefix='/login')try:self.__token_id = content['return'][0]['token']except KeyError:raise KeyErrordef postRequest(self,obj,prefix='/'):url = self.__url + prefixheaders = {'X-Auth-Token' : self.__token_id}req = urllib2.Request(url, obj, headers)opener = urllib2.urlopen(req)content = json.loads(opener.read())return contentdef list_all_key(self):params = {'client': 'wheel', 'fun': 'key.list_all'}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)minions = content['return'][0]['data']['return']['minions']minions_pre = content['return'][0]['data']['return']['minions_pre']return minions,minions_predef delete_key(self,node_name):params = {'client': 'wheel', 'fun': 'key.delete', 'match': node_name}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)ret = content['return'][0]['data']['success']return retdef accept_key(self,node_name):params = {'client': 'wheel', 'fun': 'key.accept', 'match': node_name}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)ret = content['return'][0]['data']['success']return retdef remote_noarg_execution(self,tgt,fun):''' Execute commands without parameters '''params = {'client': 'local', 'tgt': tgt, 'fun': fun}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)ret = content['return'][0][tgt]return retdef remote_execution(self,tgt,fun,arg):''' Command execution with parameters ''' params = {'client': 'local', 'tgt': tgt, 'fun': fun, 'arg': arg}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)ret = content['return'][0][tgt]return retdef target_remote_execution(self,tgt,fun,arg):''' Use targeting for remote execution '''params = {'client': 'local', 'tgt': tgt, 'fun': fun, 'arg': arg, 'expr_form': 'nodegroup'}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)jid = content['return'][0]['jid']return jiddef deploy(self,tgt,arg):''' Module deployment '''params = {'client': 'local', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)return contentdef async_deploy(self,tgt,arg):''' Asynchronously send a command to connected minions '''params = {'client': 'local_async', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)jid = content['return'][0]['jid']return jiddef target_deploy(self,tgt,arg):''' Based on the node group forms deployment '''params = {'client': 'local_async', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg, 'expr_form': 'nodegroup'}obj = urllib.urlencode(params)self.token_id()content = self.postRequest(obj)jid = content['return'][0]['jid']return jiddef main():sapi = SaltAPI(url="https://172.25.31.1:8000",username="saltapi",password="westos")#sapi.token_id()print sapi.list_all_key() ##打開該端口查看key設為A#sapi.delete_key('test-01')#sapi.accept_key('test-01')sapi.deploy('server3','nginx.service') ##打開該端口指定主機安裝相應的服務B#print sapi.remote_noarg_execution('test-01','grains.items')if __name__ == '__main__':main()

測試:

[root@server1 ~]# vim saltapi.py [root@server1 ~][root@server1 ~]# python saltapi.py ([u'server2', u'server3'], [])

總結

以上是生活随笔為你收集整理的saltstack中salt-sndic、salt-ssh和salt-api的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄毛片在线观看 | 国产精品电影一区二区三区 | 日韩av第一页 | 久久免费黄色网址 | 婷婷超碰 | 韩国三级在线 | 日韩欧美国产一区二区在线观看 | 毛片www| 久久国产精品-国产精品 | 流白浆视频 | 日韩精品在线第一页 | www.69av.com| 久久综合影视 | 亚洲国产日韩欧美 | 欧美日色 | 女同在线视频 | eeuss鲁片一区二区三区在线观看 | av片在线看| proumb性欧美在线观看 | 欧美激情视频在线 | 久久精品一区二区免费播放 | 男人的天堂亚洲 | 日韩有码在线播放 | 午夜aa| 亚洲天堂中文在线 | 五个女闺蜜把我玩到尿失禁 | 在线观看亚洲欧美 | 国产亚洲成av人片在线观看桃 | www.亚洲精品 | 清纯唯美亚洲激情 | 久久久久久久福利 | 国内少妇精品 | 一区二区三区在线观看免费视频 | 成人福利在线观看 | 丝袜人妻一区二区 | 日韩欧美a级片 | 国产国拍精品亚洲 | 校园春色中文字幕 | 办公室荡乳欲伦交换bd电影 | 欧美黑人一级爽快片淫片高清 | 国产精品无码AV无码国产 | 男朋友是消防员第一季 | 欧美一级日韩一级 | 麻豆做爰免费观看 | 日本久久久久久 | av超碰在线观看 | 国产精品伊人 | 中文字幕一区二区三区不卡 | 一区二区欧美在线 | 少妇xxxx69| 免费观看理伦片在线播放视频软件 | av特黄 | 欧美专区第二页 | 免费一级黄色大片 | 久久大香焦 | 成人在线h| bangbros性欧美18 | 欧美一级黄色网 | 久久久一二三 | 国产性―交一乱―色―情人 | 在线观看日本网站 | 日韩亚洲欧美一区二区三区 | 日本不卡一区二区三区视频 | 亚洲人成色777777精品音频 | 欧美αv | 婷婷在线免费 | 日本黄色录相 | 成人免费视频网站在线观看 | 亚洲成人1区 | 亚洲国产麻豆 | 999精品网站| 亚洲福利网址 | 在线色网站 | 今天最新中文字幕mv高清 | 糖心av| 老外黄色一级片 | 日韩色一区 | 狠狠干影院 | 久热精品视频 | av手机在线播放 | 18禁男女爽爽爽午夜网站免费 | 奇米影 | 国产精品无码粉嫩小泬 | 俺去久久 | 久久色视频 | 欧美色v | 嫩草伊人久久精品少妇av | 午夜影院欧美 | 色偷偷一区二区三区 | 99久久综合 | 少妇愉情理伦片bd | 日本黄大片在线观看 | 99国产精 | 成人羞羞在线观看网站 | 黄色www视频 | 色欧美视频 | 天天摸天天碰天天爽天天弄 | 色乱码一区二区三在线看 | 欧美成人一级 |