Saltstack 学习笔记
来源:互联网 发布:arraylist java 编辑:程序博客网 时间:2024/06/05 06:16
1. 部署安装
sudo yum install -y epel-releasesudo yum install -y salt-minionsudo yum install -y salt-master
salt-key常用参数
-a 接受指定key-A 接受所有key-D 删除所有key-d 删除指定key-r 拒绝指定key-R 拒绝所有key-y 命令行确认
常用命令
test.ping 测试连通性cmd.run 运行shell命令cmd.script 运行脚本cp.get_file 拷贝文件
2. 分组管理
- 参数说明
G -- 针对 Grains 做单个匹配,例如:G@os:UbuntuE -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).locP -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.comI -- 针对 Pillar 做单个匹配,例如:I@pdata:foobarS -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100R -- 针对客户端范围做匹配,例如: R@%foo.barD -- Minion Data匹配,例如:D@key:value
- 举个栗子
[root@beibei.com salt]$ vim /etc/salt/masternodegroups: group1: 'E@192.168.10.*' group2: 'L@192.168.10.194,192.168.10.195' group3: 'S@192.168.10.0/24' group4: 'G@os:Centos' [root@beibei.com salt]$ salt -N group4 test.ping
3. 文件系统
默认存放位置为/srv/salt
[root@beibei.com salt]$ vim /etc/salt/master # file_roots:# base:# - /srv/salt/
将/srv/salt/etc/hosts
文件拷贝至目标及其的/tmp/hosts
state.highstate
只执行top函数state.sls
[root@beibei.com salt]$ pwd/srv/salt[root@beibei.com salt]$ cat top.sls base: '192.168.10.105': - hosts[root@beibei.com salt]$ cat hosts.sls /tmp/hosts: file.managed: - source: salt://etc/hosts - user: root - mode: 600[root@beibei.com salt]$ salt '*' state.highstate[root@beibei.com salt]$ salt '*' state.sls hosts[root@beibei.com salt]$ salt '*' state.sls hosts.hosts
4. grains
grains和puppet的facter一样,负责采集客户端的一些基本信息,纯静态,只有客户端启动时才会向master端发送数据,一般用来采集静态属性
获取所有的grains值(minion的全部静态变量):
salt '*' grains.items
获取单个grains的值:grains.get获取的是value,grains.item获取的是keys:value
[root@beibei.com ~]$ salt '192.168.10.105' grains.get os192.168.10.105: CentOS[root@beibei.com ~]$ salt '192.168.10.105' grains.item os192.168.10.105: ---------- os: CentOS
**显示grains的变量名称:
salt '*' grains.ls**
分组管理
minion配置,重启minion后生效
[root@erhui minion.d]# vim shencan.conf grains: roles: nginx[root@beibei.com ~]$ salt -G roles:nginx test.ping192.168.10.105: True
自定义grains
配置minion自动发送字段信息,重启minion后生效
[root@erhui minion.d]# cat /etc/salt/miniondefault_include: minion.d/*.confmaster: 192.168.10.29id: 192.168.10.105role: erhui[root@erhui minion.d]# cat /etc/salt/minion.d/shencan.conf grains: DF: 2 shencan: 5 cpis: - a - b shencan.net: +++++++++++++++++++++ --------------------- ********************* [root@beibei.com ~]$ salt '192.168.10.105' grains.item DF[root@beibei.com ~]$ salt '192.168.10.105' grains.item shencan.net[root@beibei.com ~]$ salt '192.168.10.105' grains.item cpis
- grains默认配置文件(重启服务后生效,也可以在master端执行
salt '*' saltutil.sync_grains
生效)
[root@erhui minion.d]# cat /etc/salt/grains nodes: zabbix[root@beibei.com ~]$ salt -G nodes:zabbix test.ping192.168.10.105: True
5. pillar
grains和pillar区别
- grains存储的是静态、不常变化的内容,pillar则相反
- grains是存储在minion本地,而pillar存储在master本地
- minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改
配置pillar
[root@beibei.com ~]$ cat /etc/salt/master | grep ^[a-Z]pillar_opts: True[root@beibei.com ~]$ /etc/init.d/salt-master restart [root@beibei.com ~]$ mkdir /srv/pillar/[root@beibei.com ~]$ vim /srv/pillar/top.sls ## 编辑pillar 的 top.sls 文件添加下面内容base : '*': - data - gitdev : 'os:CentOs': - gitvim /srv/pillar/data/init.sls## 添加下面内容roles:webservervim /srv/pillar/git.sls## 添加下面内容{% if grains['os'] == 'CentOs' %}git: git{% elif grains['os'] == 'Debian' %}git: git-core{% endif %}[root@beibei.com ~]$ salt '192.168.10.105' pillar.data
阅读全文
2 0
- SaltStack学习笔记
- SaltStack学习笔记
- Saltstack 学习笔记
- saltstack自动化运学习笔记
- Saltstack自动化的学习笔记
- saltstack学习笔记-乱
- saltstack自动化部署 - 学习笔记
- saltstack学习笔记(1)
- 自动化运维工具Saltstack学习笔记(上)
- saltstack安装配置笔记
- saltstack学习汇总
- saltstack-安装笔记(1)
- saltstack-安装笔记(2)
- saltstack-安装笔记(3)
- saltstack-安装笔记(4)
- saltstack 学习一 (安装)
- saltstack
- saltstack
- java中volititle详解
- F
- 路由追踪的实现
- 爬虫-scrapy
- 静态方法static的应用图解
- Saltstack 学习笔记
- Banks UVALive
- 深入理解 QThread
- Java 引用
- MySQL 主主(双主)复制
- unity实时显示fps脚本、设置分辨率脚本、设置shader的最大lod
- JVM 如何装载和初始化一个Java class(类)
- Movie Studio文字使用技巧(二)
- Android中巧妙运用反射和注解,同时控制所有同类控件