python saltstack

1. 拷贝文件

# salt ‘*‘ cp.get_file salt://first.xml /tmp/first.xml
或 gzip=1-9,数字越大,压缩越高; makedirs=True 自动创建目录
# salt ‘*‘ cp.get_file salt://first.xml /tmp/salt/first.xml gzip=9 makedirs=True

2. 拷贝目录

cp.get_dir,get_dir与get_file的用法十分相似,用来将整个目录分发到minions. 本例在master的/srv/salt下创建目录和文件:

/srv/salt/hadoop_conf_dir/hadoop.config, 同步到所有minion节点的/tmp/hacl_conf下面, 如果目录不存在则创建,使用压缩

# salt ‘*‘ cp.get_dir salt://hadoop_conf_dir /tmp/hacl_conf gzip=9 makedirs=True
这样,minion上为:

/tmp/hacl_conf/hadoop_conf_dir/hadoop.config

3. salt接口实例调用

3.1 salt.client

import salt.client

client = salt.client.LocalClient()

ret = client.cmd(‘*‘,‘test.ping‘)

print ret

3.2 cmd

1)功能:实现远程命令的调用执行

2)实例:

获取所有主机的内存使用情况 salt ‘*‘ cmd.run "free -m"

#!/usr/bin/env python

import salt.client
client = salt.client.LocalClient()
ret = client.cmd(‘minion-25.183‘,‘cmd.run‘,[‘df -hl‘])
print ret

时间: 2024-10-04 13:55:16

python saltstack的相关文章

57. Python saltstack 二次开发(2)

回顾上一节: grains 和 pillar 都是定义他们的属性的 grains 定义在minion端(定义完必须重启minion,才能生效) pillar  定义在master端(无需重启即可生效) saltstack的api Salt-api有两种方式: 第一种:是函数的形式,有人家定义好的函数,我们可以直接调用,直接写python代码调用函数或者类就可以了. 第二种:形式是salt-api有封装好的http协议的,我们需要启动一个服务端. 登录官网查看文档: 文档内容,如下: 安装salt

python saltstack api

# -*- coding:utf-8 -*- import sys import json import pycurl from io import BytesIO class PyCurl(object): def __init__(self, url, **kwargs): # 传入url地址 self.url = url # 取出header相关信息 self.header = kwargs.get("header", None) # 创建一个curl对象 self.curl =

saltstack学习记录

安装 pip 安装 注意  依赖到zeromq3 minion过一段时间去请求master salt-api  可以访问salt去远程执行 ruby puppet   DSL配置   erb文件  模块  加载  模板支持最差 chef     定义直接是ruby代码   erb模板系统   原生支持 python saltstack   yaml配置文件    python程序模板   模板支持很好 python写模块 ipc 进程间通信 都使用key认证    安全 salt-key  -L

SaltStack与Python配合实现系统用户自动化管理

背景需求: 随意业务的发展,服务器数据也是越来越多,开发人员,运维人员也是越来越多.这时候如果有大量的人需要登录到服务器的话,那么我们就很有必要对用户进行管理.传统的方式是登录到每台服务器创建一个用户,工作重复性太大,如果有 1000台怎么办?甚至有的公司用户都不创建直接让所有人以root登录,这样更危险!!!,那么聪明一点的运维人员会写个创建用户的脚本来实现半自动化的创建用户.这些方法都不适合管理大批量的机器,接下来给大家带来其于SaltStack和Python脚本实现的自动化用户管理. 实现

python virtualenv 安装运行saltstack

需求产生场景: 1.python的virtualenv虚拟环境非常的好用. 2.saltstack作为运维自动化的一个重要组件也挺好用的. 但是: 1.saltsatck最简便的是使用yum安装,结合的是linux-centos自带的python2.6版本. 2.即便使用编译安装,也是在编译安装的python环境下 so,需求产生了: 我想要在virtualenv环境下使用saltstack的api,发现非常蛋疼.两者无法整合到一起. 为了解决这个痛点,用了半个下午的时间,参考saltstack

通过Python利用saltstack进行生成服务器资产清单

前言:人工去对每一台服务器的硬件信息并记录早已经过去了,无论通过脚本还是自动化工具都是可以进行一次编写到处抓取的,本文主要使用saltstack作为使用工具,然后利用其提供的APi编写所需的Python脚本~~ 需求如下:生成服务器主机名,IP地址,内存,CPU核数,操作系统,数据盘配额,主要运行服务 saltstack快速入门,可参考:http://youerning.blog.51cto.com/10513771/1708964 这里主要用到saltstack的grains,就是saltst

saltstack python api 调用

一.Python安装saltstack pip install salt 二.接口调用实例 1.test.ping import salt.client client = salt.client.LocalClient() ret = client.cmd('*','test.ping') print ret 2.cmd模块 1)功能:实现远程命令的调用执行 2)实例: 获取所有主机的内存使用情况 salt '*' cmd.run "free -m" client.cmd('SN201

saltstack+python批量修改服务器密码

saltstack安装:略过 python脚本修改密码: 1 # -*- coding utf-8 -*- 2 import socket 3 import re 4 import os 5 import sys 6 import crypt 7 8 9 localIP = socket.gethostbyname(socket.gethostname()) 10 11 def password(): 12 localIP = socket.gethostbyname(socket.gethos

python与saltstack动态传参变量名的研究

python动态变量名 import sys createVar = locals() listTemp = range(1,10) for i in range(1, len(sys.argv)): print sys.argv[i] a,b= sys.argv[i].split('=') createVar[a] = b print "get=",get,"put=",put 值得注意的是,用python动态变量名这个功能时,外部传入的参数不可以与代码内部定义的