salt-api安装以及简单实使用

前端之家收集整理的这篇文章主要介绍了salt-api安装以及简单实使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、安装说明@H_502_8@

  操作系统版本:CentOS Linux release 7.5.1804 (Core)

  saltstack版本:2018.3.2

  已经关闭selinux、firewalld服务。

2、配置yum源@H_502_8@

编辑/etc/yum.repos.d/salt.repo,内容如下:

[salt-latest] name@H_502_8@=SaltStack Latest Release Channel for@H_502_8@ RHEL/Centos $releasever baseurl@H_502_8@=https://@H_502_8@mirrors.aliyun.com/saltstack/yum/redhat/7/$basearch/latest@H_502_8@ failovermethod=priority enabled@H_502_8@=1@H_502_8@ gpgcheck@H_502_8@=0@H_502_8@ gpgkey@H_502_8@=file:///@H_502_8@etc/pki/rpm-gpg/saltstack-signing-key@H_502_8@

3、安装salt-master、salt-minion、salt-api@H_502_8@

yum install salt-master salt-minion salt-api pyOpenSSL

4、配置salt-master配置文件@H_502_8@

master节点配置文件为/etc/salt/master,内容如下:

interface@H_502_8@: 0.0@H_502_8@.0.0@H_502_8@ publish_port: @H_502_8@4505@H_502_8@ user: root max_open_files: @H_502_8@100000@H_502_8@ worker_threads: @H_502_8@5@H_502_8@ ret_port: @H_502_8@4506@H_502_8@ root_dir: @H_502_8@/ default_include: master.d@H_502_8@/*@H_502_8@.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节点@H_502_8@

5、部署配置salt-api认证,添加认证用户生成证书等@H_502_8@

#创建一个saltapi用户,同时为该用户添加密码
useradd @H_502_8@-M -s /sbin/nologin saltapiuser
echo @H_502_8@‘@H_502_8@123456@H_502_8@‘@H_502_8@ | passwd saltapi --stdin

#开启visudo,使该用户能拥有root权限
usermod @H_502_8@-g wheel saltapi

#进行自签名证书配置
cd @H_502_8@/etc/pki/tls/certs/
make saltapicert
salt@H_502_8@-call --local tls.create_self_signed_cert

提示已经存在时,可以删除/etc/pki/tls/certs/localhost.crt  /etc/pki/tls/certs/localhost.key重新生成

6、添加salt-api配置文件,设置远程调用端口等内容@H_502_8@

vim /etc/salt/master.d/api.conf

内容如下:
rest_cherrypy: port: @H_502_8@8010  #设置远程rest api调用端口@H_502_8@ ssl_crt: @H_502_8@/etc/pki/tls/certs/localhost.crt  #自定义tls证书,使其支持https ssl_key: @H_502_8@/etc/pki/tls/certs/localhost.key  #自定义key external_auth:  #设置认证方式 pam: saltapi: @H_502_8@- .* - ‘@H_502_8@@wheel@H_502_8@‘@H_502_8@ - ‘@H_502_8@@runner@H_502_8@

若不想使用https调用,则将ssl_cert、ssl_key配置去掉即可。@H_502_8@

7、配置完成之后,需要重启相关服务@H_502_8@

systemctl restart salt-master
systemctl restart salt@H_502_8@-api
systemctl restart salt@H_502_8@-minion

8、获取认证token值@H_502_8@

curl  -sSk https://@H_502_8@18.18.1.6:8010/login -H ‘Accept: application/x-yaml‘ -d username=‘saltapiuser‘ -d password=‘123456‘ -d eauth=‘pam‘
显示内容如下:@H_502_8@

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值会变化。若再次生成,也会发生变化。@H_502_8@

9、执行models,使用test.ping查看是否调用成功。@H_502_8@

[[email protected]192@H_502_8@-168@H_502_8@-40@H_502_8@-71@H_502_8@ ~]# curl -k https://@H_502_8@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‘@H_502_8@
return@H_502_8@:
@H_502_8@- 192.168@H_502_8@.40.71@H_502_8@: true

输出结果如上,即可说明salt-api已经配置完成,同时可使用rest api进行调用。@H_502_8@

10、远程调用命令解析@H_502_8@

-d client=‘@H_502_8@local@H_502_8@‘@H_502_8@:使用local进行远程命令执行
@H_502_8@-d tgt=‘@H_502_8@192.168.40.71@H_502_8@‘@H_502_8@:指定远程minion节点地址
@H_502_8@-d fun=‘@H_502_8@cmd.run@H_502_8@‘@H_502_8@调用的模块名称
@H_502_8@-d arg=‘@H_502_8@ip addr list@H_502_8@‘@H_502_8@调用模块所需要的参数

备注:如果调用的模块需要多个参数,需要指定多个@H_502_8@-d arg=‘@H_502_8@参数内容@H_502_8@‘@H_502_8@进行使用。请参考模块使用示例中的add_host添加解析作为参考。

11、常用模块使用示例@H_502_8@

使用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解析
@H_502_8@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节点上
@H_502_8@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‘@H_502_8@@H_502_8@
原文链接:/bash/689026.html

猜你在找的Bash相关文章