saltstack配置应用以及基础用法

一、测试是否能管理client

使用模块cmd.run 可以查看到client的ip地址

[[email protected]_server ~]# salt ‘*‘ cmd.run ‘ip a‘
salt_client1:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:f4:4f:0b brd ff:ff:ff:ff:ff:ff
        inet 192.168.100.245/24 brd 192.168.100.255 scope global eth0
        inet6 fe80::20c:29ff:fef4:4f0b/64 scope link 
           valid_lft forever preferred_lft forever
[[email protected]_server ~]#

二、查看版本

[[email protected]_server ~]# salt --versions-report
           Salt: 2014.1.0
         Python: 2.6.6 (r266:84292, Jun 18 2012, 14:18:47)
         Jinja2: unknown
       M2Crypto: 0.20.2
 msgpack-python: 0.1.13
   msgpack-pure: Not Installed
       pycrypto: 2.0.1
         PyYAML: 3.09
          PyZMQ: 2.2.0.1
            ZMQ: 3.2.4
[[email protected]_server ~]#

关于salt的命令 可以用salt -h 来查看具体用法

三、简单使用salt

salt 在语句的后面加个 -t 时间,就可以做超时控制:

[[email protected]_server ~]# salt \* cmd.run ‘sleep 3; echo ok‘ -t 3
salt_client1:
    ok
[[email protected]_server ~]#

salt \*  代表所有的在线客户端,离线的是无法显示出来的

使用用shell来表示salt:

[[email protected]_server ~]# salt ‘salt_client1‘ cmd.run ‘dir‘
salt_client1:
    anaconda-ks.cfg     install.log.syslog
    epel-release-6-8.noarch.rpm  rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    install.log
[[email protected]_server ~]#

用正则来查看以salt开头的所有主机的目录

[[email protected]_server ~]# salt ‘salt_*‘  cmd.run ‘dir‘
salt_client1:
    anaconda-ks.cfg     install.log.syslog
    epel-release-6-8.noarch.rpm  rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    install.log
[[email protected]_server ~]#

使用正则E来查看主机

[[email protected]_server ~]# salt -E ‘salt_client*‘ test.ping
salt_client1:
    True
salt_client2:
    True
[[email protected]_server ~]#

使用-L 来用列表方式来表示

[[email protected]_server ~]# salt -L ‘salt_client1,salt_client2‘ test.ping
salt_client1:
    True
salt_client2:
    True
[[email protected]_server ~]#

-N 是查看组。首先我们来添加组

修改配置文件master vim /etc/salt/master
nodegroups:
   salt_group1: ‘[email protected]_client1,salt_client2‘
   salt_group2: ‘salt_client1‘
   
[[email protected]_server ~]# /etc/rc.d/init.d/salt-master restart
Stopping salt-master daemon:                               [  OK  ]
Starting salt-master daemon:                               [  OK  ]
[[email protected]_server ~]#

然后在查看

-N 参数

salt_client1 这里指组名

test.ping这里指命令

[[email protected]_server ~]# salt -N salt_group1 test.ping
salt_client1:
    True
salt_client2:
    True
[[email protected]_server ~]# salt -N salt_group2 test.ping
salt_client1:
    True
[[email protected]_server ~]# 
[[email protected]_server ~]# salt -N salt_group1 cmd.run ‘hostname‘
salt_client1:
    salt_client1
salt_client2:
    salt_client2
[[email protected]_server ~]#

关于组的混合匹配 高级用法:

http://blog.cunss.com/wp-content/uploads/2014/02/20140210173734_68950.png

测试所有主机是否能连接

[[email protected]_server ~]# salt ‘*‘ test.ping
salt_client1:
    True

测试salt_client1是否能连接

[[email protected]_server ~]# salt ‘salt_client1‘ test.ping
salt_client1:
    True
[[email protected]_server ~]# 
[[email protected]_server ~]# salt-syndic -l debug
salt ‘*‘ -b 10 test.ping
salt -G ‘os:RedHat‘ --batch-size 25% apache.signal restart

四、使用grains 插件

grains 是salt客户端自己收集机器的相关信息,以及特称,在服务端我们可以使用-G参数来查看

使用-G来应用salt

这个参数很强大会根据用grair来指定最新的grains z这个参数和puppet里面的facter差不多

查看帮助如下:

 -G, --grain         Instead of using shell globs to evaluate the target
                        use a grain value to identify targets, the syntax for
                        the target is the grain key followed by a
                        globexpression: "os:Arch*"

我的系统是CentOS我就输入CentOS。

[[email protected]_server ~]# salt -G ‘os:CentOS‘  test.ping
salt_client1:
    True
[[email protected]_server ~]#
[[email protected]_server ~]# salt ‘*‘ grains.item os
salt_client1:
  os: CentOS
[[email protected]_server ~]# 
[[email protected]_server ~]# salt -G ‘cpuarch:x86_64‘ grains.item num_cpus
salt_client1:
  num_cpus: 1
salt_client2:
  num_cpus: 1
[[email protected]_server ~]# 
[[email protected]_server ~]# salt ‘*‘ grains.items查看有多少项目参数
[[email protected]_server ~]# salt ‘*‘ grains.ls查看有哪些参数
[[email protected]_server salt]# salt ‘salt_client1‘ grains.items 查看某个机器的基本信息
salt_client1:
  biosreleasedate: 07/31/2013
  biosversion: 6.00
  cpu_flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts
  cpu_model: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
  cpuarch: x86_64
  defaultencoding: UTF8
  defaultlanguage: en_US
  domain: 
  external_ip:
  fqdn: salt_client1
  fqdn_ip4:
      192.168.100.245
  fqdn_ip6:
  gpus:
      {‘model‘: ‘SVGA II Adapter‘, ‘vendor‘: ‘unknown‘}
  host: salt_client1
  hwaddr_interfaces: {‘lo‘: ‘00:00:00:00:00:00‘, ‘eth0‘: ‘00:0c:29:f4:4f:0b‘}
  id: salt_client1
  ip_interfaces: {‘lo‘: [‘127.0.0.1‘], ‘eth0‘: [‘192.168.100.245‘]}
  ipv4:
      127.0.0.1
      192.168.100.245
  ipv6:
  kernel: Linux
  kernelrelease: 2.6.32-279.el6.x86_64
  localhost: salt_client1
  lsb_distrib_codename: Final
  lsb_distrib_id: CentOS
  lsb_distrib_release: 6.3
  manufacturer: VMware, Inc.
  master: 192.168.100.228
  mem_total: 988
  nodename: salt_client1
  num_cpus: 1
  num_gpus: 1
  os: CentOS
  os_family: RedHat
  osarch: x86_64
  oscodename: Final
  osfinger: CentOS-6
  osfullname: CentOS
  osmajorrelease:
      6
      3
  osrelease: 6.3
  path: /sbin:/usr/sbin:/bin:/usr/bin
  productname: VMware Virtual Platform
  ps: ps -efH
  pythonpath:
      /usr/bin
      /usr/lib64/python26.zip
      /usr/lib64/python2.6
      /usr/lib64/python2.6/plat-linux2
      /usr/lib64/python2.6/lib-tk
      /usr/lib64/python2.6/lib-old
      /usr/lib64/python2.6/lib-dynload
      /usr/lib64/python2.6/site-packages
      /usr/lib/python2.6/site-packages
  pythonversion: 2.6.6.final.0
  saltpath: /usr/lib/python2.6/site-packages/salt
  saltversion: 2014.1.0
  saltversioninfo:
      2014
      1
      0
  serialnumber: VMware-56 4d 4b 45 d5 06 b3 89-63 e6 be 9b 64 f4 4f 0b
  server_id: 21436595
  shell: /bin/bash
  virtual: VMware
[[email protected]_server salt]#

五、使用salt来同步一个第一个简单的文件

[[email protected]_server ~]# mkdir /srv/salt/base -p
[[email protected]_server ~]# cd /srv/salt/base
[[email protected]_server salt]# echo "test salt first file" >> first.txt
[[email protected]_server salt]# salt ‘salt_client1‘ cp.get_file salt://first.txt /home/first.txt
salt_client1:
    /home/first.txt
[[email protected]_server salt]#

在客户端查看

[[email protected]_client1 home]# pwd
/home
[[email protected]_client1 home]# cat first.txt 
test salt first file
[[email protected]_client1 home]#
[[email protected]_server salt]# salt-run jobs.list_jobs 最近操作文件的配置
[[email protected]_server salt]# salt-run jobs.lookup_jid 20140317113642863799  后面是返回值 配合第一个一起使用

六、使用salt来查看客户端系统相关信息

查看当前是否有任务运行

[[email protected]_server salt]# salt-run jobs.active
{}
[[email protected]_server salt]#

查看所有的主机名

[[email protected]_server salt]# salt ‘*‘ cmd.run hostname
salt_client1:
    salt_client1
[[email protected]_server salt]#

查看系统

[[email protected]_server salt]# salt ‘*‘ grains.item os
salt_client1:
  os: CentOS
[[email protected]_server salt]#

查看客户端IP地址

[[email protected]_server salt]# salt ‘salt_client1‘ network.interfaces
salt_client1:
    ----------
    eth0:
        ----------
        hwaddr:
            00:0c:29:f4:4f:0b
        inet:
            ----------
            - address:
                192.168.100.245
            - broadcast:
                192.168.100.255
            - label:
                eth0
            - netmask:
                255.255.255.0
        up:
            True
    lo:
        ----------
        hwaddr:
            00:00:00:00:00:00
        inet:
            ----------
            - address:
                127.0.0.1
            - broadcast:
                None
            - label:
                lo
            - netmask:
                255.0.0.0
        up:
            True
[[email protected]_server salt]#

查看硬盘

[[email protected]_server salt]# salt ‘salt_client1‘ disk.usage
salt_client1:
    ----------
    /:
        ----------
        1K-blocks:
            10321208
        available:
            8462124
        capacity:
            14%
        filesystem:
            /dev/sda2
        used:
            1334796
    /boot:
        ----------
        1K-blocks:
            198337
        available:
            159996
        capacity:
            15%
        filesystem:
            /dev/sda1
        used:
            28101
    /dev/shm:
        ----------
        1K-blocks:
            506352
        available:
            506352
        capacity:
            0%
        filesystem:
            tmpfs
        used:
            0
    /home:
        ----------
        1K-blocks:
            10321208
        available:
            9642808
        capacity:
            2%
        filesystem:
            /dev/sda3
        used:
            154112
    /media:
        ----------
        1K-blocks:
            19134336
        available:
            4939136
        capacity:
            73%
        filesystem:
            192.168.100.249:/opt/
        used:
            13223232
    /mnt:
        ----------
        1K-blocks:
            19134336
        available:
            4939136
        capacity:
            73%
        filesystem:
            192.168.100.249:/opt/CentOS
        used:
            13223232
[[email protected]_server salt]#
[[email protected]_server ~]# salt ‘salt_client1‘ cmd.run ‘df -h‘
salt_client1:
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2             9.9G  1.3G  8.1G  14% /
    tmpfs                 495M     0  495M   0% /dev/shm
    /dev/sda1             194M   28M  157M  15% /boot
    /dev/sda3             9.9G  151M  9.2G   2% /home
    192.168.100.249:/opt/CentOS
                           19G   13G  4.8G  73% /mnt
    192.168.100.249:/opt/
                           19G   13G  4.8G  73% /media
[[email protected]_server ~]#

七、使用salt来管理系统软件包

安装包

[[email protected]_server salt]# salt ‘salt_client1‘ pkg.install telnet
salt_client1:
    ----------
    telnet:
        ----------
        new:
            0.17-47.el6
        old:
            
[[email protected]_server salt]#

查看安装的包,这里安装的包指的不是用salt安装的包 而是全部的包

[[email protected]_server salt]# salt ‘salt_client1′ pkg.list_pkgs

删除刚安装的包

[[email protected]_server salt]# salt ‘salt_client1‘ pkg.remove telnet
salt_client1:
    ----------
    telnet:
        ----------
        new:
            sal
        old:
            0.17-47.el6
[[email protected]_server salt]#

在客户端查看

[[email protected]_client1 salt]# rpm -qa | grep telnet
telnet-0.17-47.el6.x86_64
[[email protected]_client1 salt]# telnet
telnet> ^C
[[email protected]_client1 salt]# rpm -qa | grep telnet
[[email protected]_client1 salt]#

查看repos内容:

[[email protected]_server salt]# salt ‘salt_client1‘ pkg.list_repos
salt_client1:
    ----------
    source:
        ----------
        baseurl:
            file:///mnt/CentOS6.3
        enabled:
            1
        file:
            /etc/yum.repos.d/source.repo
        gpgcheck:
            0
        name:
            source
    source1:
        ----------
        baseurl:
            file:///mnt/saltstack
        enabled:
            1
        file:
            /etc/yum.repos.d/source.repo
        gpgcheck:
            0
        name:
            source1
[[email protected]_server salt]#

如果想查看所有minion的链接情况,我们可以用如下命令来查看

[[email protected]_server ~]# salt ‘*‘ test.ping
salt_client1:
    True
[[email protected]_server ~]# salt-run manage.status
down:
up:
    - salt_client1
[[email protected]_server ~]#

删除客户端的一个用户:

[[email protected]_server ~]# salt ‘salt_client1‘ webutil.userdel /etc/passwd kcc
salt_client1:
    - Deleting password for user kcc
[[email protected]_server ~]# 
Space-delimited arguments to the function:
[[email protected]_server ~]# salt \* cmd.exec_code python ‘import sys; print sys.version‘
salt_client2:
    2.6.6 (r266:84292, Jun 18 2012, 14:18:47) 
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]
salt_client1:
    2.6.6 (r266:84292, Jun 18 2012, 14:18:47) 
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]
[[email protected]_server ~]#
时间: 2024-09-27 01:20:33

saltstack配置应用以及基础用法的相关文章

初识salt之saltstack配置应用以及基础用法

一.测试是否能管理client 使用模块cmd.run 可以查看到client的ip地址 [[email protected]_server ~]# salt '*' cmd.run 'ip a' salt_client1:     1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  

sass基础用法

sass基础用法 SASS是什么 传统的CSS是一种单纯的描述性样式文件,然而SASS可以对CSS进行预编译处理. 在SASS源码中可以使用变量.函数.继承等动态语言的特性,并且可以编译成CSS文件. 安装与使用 安装 由于sass是ruby写的,所以想要使用sass就需要安装ruby环境.然后再使用gem安装sass. 输入下面的命令进行安装sass: gem install sass 可以使用sass -v命令查看sass的版本. 使用 新建一个后缀名为.scss源码文件,就可以编辑sass

游标基础用法

Create PROCEDURE P_InsertSubject@SubjectId intASDECLARE rs CURSOR LOCAL SCROLL FORselect studentid from student where StudentGradu = 1OPEN rsFETCH NEXT FROM rs INTO @tempStudentIDWHILE @@FETCH_STATUS = 0BEGINInsert SelSubject values (@SubjectId,@temp

Cocos数据篇[3.4](6) ——SQLite3数据库基础用法

[唠叨] 在Cocos2d-x中,简单数据存储,可以使用UserDefault.那么如何存储大量,不规则的数据?我们可以使用 SQLite数据库 存储数据.SQLite 是使用非常广泛的 嵌入式数据库 ,它有小巧 .高效.跨平台.开源免费和易操作的特点.所以大量的被用于手机.PDA.MP3播放器.以及机顶盒设备. SQLite数据库是使用C语言来编写的,因此在Cocos2d-x使用SQLite也是得心应手. 本文介绍一下SQLite3数据库的基础用法:增删改查. PS:另外对于SQLite的可视

sed命令基础用法

    sed(Stream EDitor)简介 sed是一个流编辑器编辑器,本身是一个管道命令,主要以行为单位处理文本文件,可以将数据进行替换.删除.新增.选取等特定工作:sed并不会处理文本文件本身,而是每当处理一个文件时,按顺序逐行读取到模式空间(内存)中,而后在模式空间中完成编辑,把编辑的结果输出到屏幕上,接着处理下一行,反复操作,直到文件结尾. 模式空间:将读取的内容放在内存中的一块区域编辑,这些内存空间就称为模式空间 格式: sed [options]    'Address Com

2017.04 vue学习笔记---08表单控件绑定---基础用法

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> div{ margin-bottom: 30px; } </style> <script src="js/vue.js"></script> <

UIButton的最基础用法

UIButton的最基础用法 UIButton (1) 创建显示一个Button      //演示UI中按钮类UIButton使用 //需求: 想要在界面上显示一个按钮 //解决:   使用UIButton按钮类  //<1>创建按钮,一般需要指定按钮的风格 //系统样式的按钮:  UIButtonTypeSystem //如果创建带图片的: 一般选用UIButtonTypeCustom //圆角矩形: ios7不再使用UIButtonTypeRoundedRect //UIButtonTy

Vue组件基础用法

前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需,使用不同的组件来拼接页面.这种开发模式使前端页面易于扩展,且灵活性高,而且组件之间也实现了解耦.本文将详细介绍Vue组件基础用法 概述 组件是一个自定义元素或称为一个模块,包括所需的模板.逻辑和样式.在HTML模板中,组件以一个自定义标签的形式存在,起到占位符的功能.通过Vue.js的声明式渲染后,

sed基础用法

在linux系统中,sed的文本处理无疑是一个非常强大的工具,用好sed可以使我们工作效率成倍提升,下面就小结一下sed的常用命令参数,只需关注常用的即可. 选项参数 首先来一发sed --help了解一下常用的参数 # sed --help Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n  忽略打印输出,一般是避免默认输出,只有我们处理的那一行文本会显示在屏幕上 -e  在命令行进行文本的处理