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. ...
随机推荐
- Android之基于小米天气的天气源库
大概去年的这个时候,有跟大家分享简洁天气这个应用. 该应用一開始使用的是中国天气网的数据,可是,由于须要反复多次请求server获取信息才干满足我们的需求,因此.后来我偷偷的将天气源更换成" ...
- 使用target打开的iframe 获取src的问题
<a target="mainframe"href="xxx.jsp"/> <iframe id="mainframe" ...
- 20155210 实验一 逆向与Bof基础
20155210 实验一 逆向与Bof基础 实验内容 1.直接修改程序机器指令,改变程序执行流程 下载目标文件pwn1,反汇编 利用objdump -d pwn1对pwn1进行反汇编 得到: 8048 ...
- EZ 2018 02 26 NOIP2018 模拟赛(一)
这次是校内OJ(HHHOJ)线上比赛,网址:http://211.140.156.254:2333/contest/51 (我去刚刚快写完了手贱关掉了) 这次总体难度也不高,T1&&T ...
- Mysql的基本操作(一)增、删、改
创建/增加(create创建,alter字段操作,insert插入) 创建数据库 create database 数据库名称 charset=utf8; # 例: create database te ...
- Flask入门的第一个项目
前言: Flask简介:Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎. 想要学习flask,又非常迷茫,不知如何下手 ...
- android开发之使用SQLite数据库存储
http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...
- ajax设置自定义请求头
1, $.ajax({ url:apiUrl, type:"get", timeout : 5000, //超时时间设置,单位毫秒 dataType: "json&quo ...
- 团队博客 Week14
0. 在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出 ...
- ThinkPHP框架知识(比较全的知识)
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...