salt-api安装以及简单实使用
1、安装说明
操作系统版本:CentOS Linux release 7.5.1804 (Core)
saltstack版本:2018.3.2
已经关闭selinux、firewalld服务。
2、配置yum源
编辑/etc/yum.repos.d/salt.repo,内容如下: [salt-latest]
name=SaltStack Latest Release Channel for RHEL/Centos $releasever
baseurl=https://mirrors.aliyun.com/saltstack/yum/redhat/7/$basearch/latest
failovermethod=priority
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key
3、安装salt-master、salt-minion、salt-api
yum install salt-master salt-minion salt-api pyOpenSSL
4、配置salt-master配置文件
master节点配置文件为/etc/salt/master,内容如下: interface: 0.0.0.0
publish_port:
user: root
max_open_files:
worker_threads:
ret_port:
root_dir: /
default_include: master.d/*.conf #设置salt master的配置文件,包含master.d目录下的文件
pki_dir: /etc/salt/pki/master
keep_jobs: 24
timeout: 5
auto_accept: True
state_top: top.sls
file_roots:
base:
- /srv/salt
log_file: /var/log/salt/master
log_level: debug
file_recv: True #启用从客户端传送文件到master节点
5、部署配置salt-api认证,添加认证用户,生成证书等
#创建一个saltapi用户,同时为该用户添加密码
useradd -M -s /sbin/nologin saltapiuser
echo '' | passwd saltapi --stdin #开启visudo,使该用户能拥有root权限
usermod -g wheel saltapi #进行自签名证书配置
cd /etc/pki/tls/certs/
make saltapicert
salt-call --local tls.create_self_signed_cert 提示已经存在时,可以删除/etc/pki/tls/certs/localhost.crt /etc/pki/tls/certs/localhost.key重新生成
6、添加salt-api配置文件,设置远程调用端口等内容
vim /etc/salt/master.d/api.conf 内容如下:
rest_cherrypy:
port: 8010 #设置远程rest api调用端口
ssl_crt: /etc/pki/tls/certs/localhost.crt #自定义tls证书,使其支持https
ssl_key: /etc/pki/tls/certs/localhost.key #自定义key
external_auth: #设置认证方式
pam:
saltapi:
- .*
- '@wheel'
- '@runner' 若不想使用https调用,则将ssl_cert、ssl_key配置去掉即可。
7、配置完成之后,需要重启相关服务
systemctl restart salt-master
systemctl restart salt-api
systemctl restart salt-minion
8、获取认证token值
curl -sSk https://18.18.1.6:8010/login -H 'Accept: application/x-yaml' -d username='saltapiuser' -d password='123456' -d eauth='pam'
显示内容如下:
return:
- eauth: pam
expire: 1535514571.611626
perms:
- .*
- '@wheel'
- '@runner'
start: 1535471371.611626
token: f9546b1a123bd1edcefefbcff37a54ff3358cda3 #此处即为远程调用的token值
user: saltapiuser
备注:如果在配置文件中,并未配置ssl_cert、ssl_key配置,请使用http进行调用。同时若重启salt-api服务,token值会变化。若再次生成,也会发生变化。
9、执行models,使用test.ping查看是否调用成功。
[root@--- ~]# curl -k https://18.18.1.6:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9546b1a123bd1edcefefbcff37a54ff3358cda3" -d client='local' -d tgt='192.168.40.71' -d fun='test.ping'
return:
- 192.168.40.71: true 输出结果如上,即可说明salt-api已经配置完成,同时可使用rest api进行调用。
10、远程调用命令解析
-d client='local':使用local进行远程命令执行
-d tgt='192.168.40.71':指定远程minion节点地址
-d fun='cmd.run' :调用的模块名称
-d arg='ip addr list':调用模块所需要的参数 备注:如果调用的模块需要多个参数,需要指定多个-d arg='参数内容'进行使用。请参考模块使用示例中的add_host添加解析作为参考。
11、常用模块使用示例
使用cmd.run模块,远程执行命令
curl -k https://18.18.1.6:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9546b1a123bd1edcefefbcff37a54ff3358cda3" -d client='local' -d tgt='192.168.40.71' -d fun='cmd.run' -d arg='ip addr list' 使用add_host添加hosts解析
curl -k https://18.18.1.6:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9546b1a123bd1edcefefbcff37a54ff3358cda3" -d client='local' -d tgt='192.168.40.71' -d fun='hosts.add_host' -d arg='2.2.2.2' -d arg='test.lcs'
其中2.2.2.2为ip地址,test.lcs为域名。 使用cp.push方法从minion上将文件复制到master节点上
curl -k https://18.18.1.6:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9546b1a123bd1edcefefbcff37a54ff3358cda3" -d client='local' -d tgt='192.168.40.71' -d fun='cp.push' -d arg='/tmp/1.txt'
复制过来的文件位置为:/var/cache/salt/master/minions/192.168.40.71/files/tmp,其中192.168.40.71为minion节点ip地址。 调用cp.get_file方法,将master节点上文件复制到minion节点上。
curl -k https://18.18.1.6:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9546b1a123bd1edcefefbcff37a54ff3358cda3" -d client='local' -d tgt='192.168.40.71' -d fun='cp.get_file' -d arg='salt://tmp/1.txt' -d arg='/data/1.txt' 由于需要在复制文件的时候,需要传入多个参数,因此,使用run模块,将多个参数放在列表中传入。
curl -k https://18.18.1.6:8010/run -H "Accept: application/json" -H "Content-type: application/json" -d '[{"client":"local","tgt":"192.168.40.71","fun":"cp.get_file","arg":["salt://tmp/1.txt","/data/111.txt"],"username":"xxx","password":"xxx","eauth":"pam"}]'
salt-api安装以及简单实使用的更多相关文章
- CentOS 安装及配置Salt api
安装 # yum -y install salt-api 更改配置 vim /etc/salt/master 把默认的注释掉 我们这边默认配置文件目录是/srv/salt default_inclu ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- (转)python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)
一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...
- python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用
版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...
- redis的安装与简单使用
redis的安装与简单使用: Redis简介: redis的应用场景: 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 ...
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
随机推荐
- python_基础硬件知识
通过学习这一篇章的内容,回顾了<数字逻辑><计算机组成原理><操作系统> 这几门课的相关知识 有时候,总是要了解一些基本,才能更容易理解程序 以下是我的一些听课记录 ...
- POJ 2388&&2299
排序(水题)专题,毕竟如果只排序不进行任何操作都是极其简单的. 事实上,排序算法十分常用,在各类高级的算法中往往扮演着一个辅助的部分. 它看上去很普通,但实际的作用却很大.许多算法在失去排序后将会无法 ...
- 【php增删改查实例】第一节 - PHP开发环境配置
最近需要使用PHP,于是把平时的积累整理一下,就有了这个教程. 首先是环境配置: 1.操作系统:windos7 2.后台:PHP 3.前台:Html + js + css 4.数据库:MYSQL 5. ...
- AT24C02跨页写数据
AT24C02 EEPROM的写数据分为:字节写数据模式和页写数据模式:字节写就是一个地址一个数据的写,页写是连续写数据,一个地址多个数据的写,但是页写不能自动跨页,如果超出一页长度,超出的数据会覆盖 ...
- effective c++ 笔记 (1-3)
// // effective c++.cpp // 笔记 // // Created by fam on 15/3/23. // // //-------------------------- ...
- Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法
一.背景介绍 强连通分量是有向图中的一个子图,在该子图中,所有的节点都可以沿着某条路径访问其他节点.强连通性是一种非常重要的等价抽象,因为它满足 自反性:顶点V和它本身是强连通的 对称性:如果顶点V和 ...
- C#_Stream
IO操作基本上需要用到Stream相关的子类,因此这类问题在CSDN问得也是比较多.其实对于Stream来说,操作起来比较简单,只要对细节的处理稍微注意一下,相信在使用它的时候也会得心应手. 对于St ...
- LintCode——Pour Water
Pour Water: We are given an elevation map, heights[i] representing the height of the terrain at that ...
- Final互评------《飞词》---- 拉格朗日2018
一.基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题; N(Need,需求):拉格朗日2018团队对需求分析的做法是通过问卷调查的形式,通过问卷调查分析出目前的大学生群体 ...
- 20135202闫佳歆--week6 分析Linux内核创建一个新进程的过程——实验及总结
week 6 实验:分析Linux内核创建一个新进程的过程 1.使用gdb跟踪创建新进程的过程 准备工作: rm menu -rf git clone https://github.com/mengn ...