广告
返回顶部
首页 > 资讯 > 后端开发 > Python >salt-api安装配置及使用
  • 674
分享到

salt-api安装配置及使用

saltapi 2023-01-31 07:01:12 674人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

python3使用saltstack和salt-api 安装python3 1. tar zxvf Python-3.5.1.tgz 2. cd Python-3.5.1 3. ./confi

python3使用saltstack和salt-api

安装python3

    1. tar zxvf Python-3.5.1.tgz   
    2. cd  Python-3.5.1        
    3. ./configure
    4. make
    5. make install
    6. mv  /usr/bin/python /usr/bin/python2 # 如果是软连接,可以直接删除
    7. ln -s /usr/local/bin/python3.5 /usr/bin/python
    8. vim /usr/bin/yum   # 修改Yum,使yum依然有效,yum依靠老版本的python
    9. #!/usr/bin/python 修改为#!/usr/bin/python2

# 修改完/usr/bin/yum 依然还有问题,可以尝试修改/usr/libexec/urlgrabber-ext-down的文件python抬头

安装 salt-api

yum install salt-api -y

配置

  • 生成自签名证书(用于ssl)
cd  /etc/pki/tls/certs
# 生成自签名证书, 过程中需要输入key密码及RDNs
make testcert
cd /etc/pki/tls/private/
# 解密key文件,生成无密码的key文件, 过程中需要输入key密码,该密码为之前生成证书时设置的密码
openssl rsa -in localhost.key -out localhost_nopass.key
  • 创建用于salt-api的用户
useradd -M -s /sbin/nologin salt-api
echo "salt-api" | passwd salt-api —stdin
  • 修改/etc/salt/master文件
sed -i '/#default_include/s/#default/default/g' /etc/salt/master  
mkdir /etc/salt/master.d 
  • 新增配置文件/etc/salt/master.d/api.conf
cat /etc/salt/master.d/api.conf
rest_cherrypy:
  port: 8000
  ssl_crt: /etc/pki/tls/certs/localhost.crt
  ssl_key: /etc/pki/tls/private/localhost_nopass.key
  • 新增配置文件/etc/salt/master.d/eauth.conf
cat /etc/salt/master.d/eauth.conf  
external_auth:  
  pam:  
    salt-api:  
      - .*  
      - '@wheel'  
      - '@runner' 
  • 启动salt-master and salt-api
systemctl start salt-master
systemctl start salt-api
  • 安装一个salt client
yum install salt-miNIOn -y
修改配置
sed -i "/^#master: salt/c master: 192.168.104.76"  /etc/salt/minion
启动 client
systemctl start salt-minion
  • master 上接受key
[root@node76 salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node76
Rejected Keys:
[root@node76 salt]# salt-key -A
The following keys are Going to be accepted:
Unaccepted Keys:
node76
Proceed? [n/Y] Y
Key for minion node76 accepted.
[root@node76 salt]# salt-key -L
Accepted Keys:
node76
Denied Keys:
Unaccepted Keys:
Rejected Keys:

api使用

  • 使用curl 获取token
 curl -k https://192.168.104.76:8000/login -H "Accept: application/x-yaml"  -d username='salt-api' -d passWord='salt-api'  -d eauth='pam'
return:
- eauth: pam
  expire: 1520269544.2591
  perms:
  - .*
  - '@wheel'
  - '@runner'
  start: 1520226344.259099
  token: 593a7224f988f28b84d58b7cda38fe5e5ea07d98
  user: salt-api

获取token后就可以使用token通信

==注==:重启salt-api后token改变

  • 测试minion端的联通性

    下面功能类似于“salt '*' test.ping”

curl -k Https://192.168.104.76:8000 -H "Accept: application/x-yaml" -H "X-Auth-Token: ded897184a942ca75683276c29d787ea71c207a9" -d client='local' -d tgt='*' -d fun='test.ping' 
return:
- node76: true
  • 参数解释:

    client : 模块,python处理salt-api的主要模块,‘client interfaces <netapi-clients>’
    local : 使用‘LocalClient <salt.client.LocalClient>’ 发送命令给受控主机,等价于saltstack命令行中的'salt'命令
    local_async : 和local不同之处在于,这个模块是用于异步操作的,即在master端执行命令后返回的是一个jobid,任务放在后台运行,通过产看jobid的结果来获取命令的执行结果。
    runner : 使用'RunnerClient<salt.runner.RunnerClient>' 调用salt-master上的runner模块,等价于saltstack命令行中的'salt-run'命令
    runner_async : 异步执行runner模块
    wheel : 使用'WheelClient<salt.wheel.WheelClient>', 调用salt-master上的wheel模块,wheel模块没有在命令行端等价的模块,但它通常管理主机资源,比如文件状态,pillar文件,salt配置文件,以及关键模块<salt.wheel.key>功能类似于命令行中的salt-key。
    wheel_async : 异步执行wheel模块
    备注:一般情况下local模块,需要tgt和arg(数组),kwarg(字典),因为这些值将被发送到minions并用于执行所请求的函数。而runner和wheel都是直接应用于master,不需要这些参数。
    tgt : minions
    fun : 函数
    arg : 参数
    expr_fORM : tgt的匹配规则
    'glob' - Bash glob completion - Default
    'pcre' - Perl style regular expression
    'list' - Python list of hosts
    'grain' - Match based on a grain comparison
    'grain_pcre' - Grain comparison with a regex
    'pillar' - Pillar data comparison
    'nodegroup' - Match on nodegroup
    'range' - Use a Range server for matching
    'compound' - Pass a compound match string
  • 执行远程命令

    下面功能类似于“salt '*' cmd.run ifconfig”

curl -k https://192.168.104.76:8000 -H "Accept: application/x-yaml" -H "X-Auth-Token: ded897184a942ca75683276c29d787ea71c207a9" -d client='local' -d tgt='*' -d fun='cmd.run'   -d arg='uptime'
return:
- node76: ' 13:18:46 up 161 days,  2:23,  1 user,  load average: 0.15, 0.09, 0.10'
  • 使用state.sls

    下面功能类似于“salt '*' state.sls ifconfig”

 curl -k https://192.168.104.76:8000 -H "Accept: application/x-yaml" -H "X-Auth-Token: ded897184a942ca75683276c29d787ea71c207a9" -d client='local' -d tgt='*' -d fun='state.sls' -d arg='ifconfig'
return:
- node76:
        cmd_|-ifconfig_|-ifconfig_|-run:  
      __run_num__: 0  
      changes:  
        pid: 30954  
        retcode: 0  
        stderr: ''  
        stdout: "eth2      Link encap:Ethernet  HWaddr 00:50:56:B5:5C:28  \n     \  
          \     inet addr:192.168.90.63  Bcast:192.168.90.255  Mask:255.255.255.0\n\  
          \          inet6 addr: fe80::250:56ff:feb5:5c28/64 Scope:Link\n        \  
          \  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:825051\  
          \ errors:0 dropped:0 overruns:0 frame:0\n          TX packets:434351 errors:0\  
          \ dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000\  
          \ \n          RX bytes:60353823 (57.5 MiB)  TX bytes:27062672 (25.8 MiB)\n\  
          \nlo        Link encap:Local Loopback  \n          inet addr:127.0.0.1 \  
          \ Mask:255.0.0.0\n          inet6 addr: ::1/128 Scope:Host\n          UP\  
          \ LOOPBACK RUNNING  MTU:16436  Metric:1\n          RX packets:808 errors:0\  
          \ dropped:0 overruns:0 frame:0\n          TX packets:808 errors:0 dropped:0\  
          \ overruns:0 carrier:0\n          collisions:0 txqueuelen:0 \n         \  
          \ RX bytes:59931 (58.5 KiB)  TX bytes:59931 (58.5 KiB)"  
      comment: Command "ifconfig" run  
      duration: 11.991  
      name: ifconfig  
      result: true  
      start_time: '13:59:06.334112'  
  • 使用Targeting

    下面功能类似于"salt -L '192.168.90.61,192.168.90.63' test.ping"

 curl -k https://192.168.104.76:8000 -H "Accept: application/x-yaml" -H "X-Auth-Token: ded897184a942ca75683276c29d787ea71c207a9"  -d client='local' -d tgt='node76'  -d expr_form='list'  -d fun='test.ping' 
return:
- node76: true
  • JSON格式输出
    curl -k https://192.168.104.76:8000 -H "Accept: application/json" -H "X-Auth-Token: ded897184a942ca75683276c29d787ea71c207a9"  -d client='local' -d tgt='node76'  -d fun='cmd.run' -d arg='uptime'
    {"return": [{"node76": " 13:25:20 up 161 days,  2:30,  1 user,  load average: 0.01, 0.06, 0.08"}]}

--结束END--

本文标题: salt-api安装配置及使用

本文链接: https://www.lsjlt.com/news/191960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • salt-api安装配置及使用
    Python3使用saltstack和salt-api 安装python3 1. tar zxvf Python-3.5.1.tgz 2. cd Python-3.5.1 3. ./confi...
    99+
    2023-01-31
    salt api
  • gradle的安装配置及使用
    一、gradle的安装 1.官网下载链接:https://gradle.org/releases/ 1、下载后解压 2、配置环境变量,新建 GRADLE_HOME 环境变量指向你的 Gradle 解压路径 3、将 %GRADLE_H...
    99+
    2023-08-19
    gradle java 开发语言
  • OSWatcher的安装、配置以及使用
    本篇内容介绍了“OSWatcher的安装、配置以及使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!参考O...
    99+
    2022-10-18
  • Maven安装及配置
    1.下载 Maven – Download Apache Maven 2.安装 maven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹内即可使用。 3.配置环境变量 1.右键此电脑->属性...
    99+
    2023-10-04
    maven java
  • idea2023.3安装及配置
    idea2023.3安装及配置 一.安装idea 1.卸载旧版本idea 2.下载idea旗舰版 Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains ...
    99+
    2023-08-31
    intellij-idea java idea
  • git安装及配置
    文章目录 Git的环境配置一、安装git二、注册GitHub账户三、配置git1.检查安装2.配置信息3.生成 SSH4.添加到GitHub管理平台5.检查是否配置成功6.多平台多账户使用Gi...
    99+
    2023-09-21
    git github
  • varnish3安装及配置
    1.varnish安装 下载varnish软件  (此处下载3.0.2版本)   #wget   http://repo.varnish-cache.org/source/varnish-3.0.2.tar.gz#tar -xvf...
    99+
    2023-01-31
  • postgresql的源码安装及配置使用
    装postgresql非常简单。直接三部曲搞定。./configure --prefix=/usr/local/postgresqlmakemake install创建postgresql的数据目录mkdi...
    99+
    2022-10-18
  • linux如何安装配置及使用redis
    这篇文章主要为大家展示了“linux如何安装配置及使用redis”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux如何安装配置及使用redis”这篇文章吧...
    99+
    2022-10-18
  • MyEclipse 6.0安装及配置
    要安装和配置MyEclipse 6.0,您可以按照以下步骤操作:1. 下载MyEclipse 6.0安装文件。您可以从MyEclip...
    99+
    2023-09-12
    MyEclipse
  • 2、Automapper安装及配置
    一、 安装 我们安装是在 vs 中使用Nuget的方式进行安装 不过安装时需注意一件事情就是,版本问题,我示例使用的是.net framework 4.5.2,所以我安装AutoMapper的版本是7.0,如果安装失败,把版本降...
    99+
    2018-10-02
    2 Automapper安装及配置
  • 3、SQLSVR安装及配置
    安装常用软件及必要组件(如.net3.5),进行基本服务器配置,并安装vm-tools,进行初始状态快照。安装SQLSVR2012,标准操作不再冗述。安装完成后创建Vcenter数据库...
    99+
    2023-01-31
    SQLSVR
  • JMeter安装及配置-Mac
    JMeter安装及配置-Mac 本章要点 前置条件命令行安装压缩包安装 在Mac上安装对应的JMeter工具有两种方式:一种直接借助终端命令行brew进行安装;另外一种和Window电脑一样去JMeter官网下载压缩包安装。 JMeter不...
    99+
    2023-08-18
    jmeter macos java
  • Android SDK安装及配置
    Android SDK(Software Development Kit)是一个开发Android应用程序所需的开发工具包。下面是A...
    99+
    2023-09-13
    Android
  • 【Android】SDK安装及配置
    一、下载SDK Tools 地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载  以windows10系统为例,下载压缩...
    99+
    2023-08-31
    android
  • Tomcat安装配置及Eclipse配置详解
    整个安装过程我们先学习安装JDK和配置然后是安装Tomcat和配置,最后我们学习安装Eclipse和配置以及Web程序的使用和发布举例1. 安装JDK和配置JDK的安装参照:JDK的下载、安装与部署图文教程(1)下载JDK安装包:https...
    99+
    2023-05-30
    tomcat 安装 eclipse
  • webpack安装配置及使用教程详解
    目录一、webpack介绍1、由来2、介绍3、作用4、拓展说明5、webpack整体认知二、webpack安装1、安装node2、安装cnpm3、安装nrm的两种方法4、安装webp...
    99+
    2022-11-13
  • python安装及环境配置
    1.安装python  第一步,windows下面的Python安装一般是通过软件安装包安装而不是命令行,所以我们首先要在Python的官方主页上面下载最新的Python安装包。  下载地址是:https://www.python.o...
    99+
    2023-09-27
    python Powered by 金山文档
  • Centos7.7安装及配置教程
    以下是CentOS7.7安装及配置的教程:1. 下载CentOS 7.7的ISO镜像文件,可以在CentOS官网上找到并下载。2. ...
    99+
    2023-09-21
    Centos
  • MAC上git安装及配置
    MAC上git安装及配置 新换了Mac笔记本,用得很不习惯,浅记录一下 一、安装Git 首先查看电脑是否安装Git,终端输入: git 没有找到,但电脑自动提示安装开发者工具,安装后测试git安装成功。 方式2:通过homebrew安装G...
    99+
    2023-08-16
    git github ssh
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作