1 rpm centos中的安装包格式 ,相当于windows中的exe文件
2 yum是centos中方便的rpm仓库以及提供方便的安装方法,不但可以安装而且可以安装相应的依赖
3 /etc/yum.conf 是yum源的配置文件
4 /etc/yum.repo.d/xx.repo是yum源的仓库,安装文件的时候会根据配置下载安装包和相应的依赖包,然后安装
5 epel,安装后会产生yum源仓库的repo文件
6 yum源自行更换:下载repo文件,删除原来的repo文件 清理原来的缓存重新生成:1)yum clean all 2)yum makecache
安装:yum install 。。
升级所有软件包:yum update
升级某个软件包:yum update tomcat
检查可更新的程序:yum check-update
显示已经安装:yum list installed
查找可以安装:yum list tomcat
卸载:yum remove tomcat
列出依赖:yum deplist tomcat
显示信息:yum info tomcat
查看是否安装:rpm -qa | grep subscription
删除:rpm -e file.rpm
安装:rpm -qa | grep salt-master
==========
salt的安装参考:https://my.oschina.net/u/3314358/blog/1839063
自定义service:/lib/systemd/system
一、启动与重启:
systemctl start salt-master
systemctl start salt-minion
systemctl restart salt-minion
systemctl status salt-minion
二、目录:/etc/salt/
日志目录:/var/log/salt
三、重新认证:
1、清空minion_id:/etc/salt/minion_id
2.删除minion存放masterkey的文件pki文件夹下所以的东西 :rm -rf /etc/salt/pki/*
3.重启minion
4.在master端:删除pki文件之后,重启即可 rm -rf /etc/salt/pki/* & service salt-master restart
四、查看端口,看salt是否启动成功
netstat -antlp|grep 4506
五、master上查看连接到的minion: salt-key -L
六、常用命令
1)salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令
salt [options] '
如: salt '*' test.ping (校验master与minion的连接情况)
2)salt-run 该命令执行runner(salt带的或者自定义的,runner以后会讲),通常在master端执行,比如经常用到的manage
salt-run [options] [runner.func]
salt-run manage.status ##查看所有minion状态
salt-run manage.down ##查看所有没在线minion
salt-run manged.up ##查看所有在线minion
3)salt-key 密钥管理,通常在master端执行
salt-key [options]
salt-key -L##查看所有minion-key,安装完成的时候用这个命令确定master有几个minion连接成功
salt-key -a
salt-key -d
salt-key -A##接受所有的minion-key
salt-key -D##删除所有的minion-key
说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all
4)salt-call 该命令通常在minion上执行,minion自己执行可执行模块,不是通过master下发job
salt-call [options]
salt-call test.ping ##自己执行test.ping命令
salt-call cmd.run 'ifconfig' ##自己执行cmd.run函数
5)salt-cp 分发文件到minion上,不支持目录分发,通常在master运行
salt-cp [options] '
salt-cp '*' testfile.html /tmp
salt-cp 'test*' index.html /tmp/a.html
6)salt-ssh 0.17.1版本加入的salt-ssh
7)salt-master master运行命令
salt-master [options]
salt-master ##前台运行master
salt-master -d##后台运行master
salt-master -l debug ##前台debug输出
七、sls文件(个人理解:是yaml的模板文件,也可以使用jinja动态生成模板,然后通过yaml解析后生成一定的数据结构给salt使用)
1. sls文件本质上是python嵌套字典(键值对),由salt-master以广播的形式传递给salt-minion,通过sls文件告知使用哪个模块的哪个函数,参数有哪些,在salt-minion一侧进行函数调用
2. 冒号':' 用来分隔键和值, 冒号:与后面的单词如果在一行,一定要有一个空格, 一个单词后面是否有冒号:取决于这个单词是否是key, 后面是否有值或者是嵌套的内容
短横杠 - 表示这项是个列表项, 短横杠与后面的单词有一个空格
缩进: 本层与下一层要有缩进, 缩进不能用tab, 一般是两个空格. 相同一缩进表示相同的层级
八、Module 模块使用(模块之间调用:可以通过 __salt__['模块.函数']('函数参数'),调用其他的模块)
1)开启配置Module的目录:module_dirs : ['/srv/salt/_modules']
2)定义的目录中创建Module,python的文件
3)同步Module到minion上:salt '*' saltutil.sync_modules
4)执行Module:salt '*' zhou.zhou zyy参数
5)Module中使用全局字典,grains,pillar,salt
grain = __grains__['chengge']
# 通过salt默认的一个字典__grains__,你想去哪个grain的时候,使用 __grains__['Id']
pillar = __pillar__['group']
# pillar 和 grains 一个样,__pillar__['Id']
result = __salt__['cmd.run'](args)
# __salt__['模块.函数']('函数参数')
6)同步模块到minion的3中方式
salt '*' state.highstate
salt '*' saltutil.sync_all
salt '*' saltutil.sync_modules
九、Runner 模块使用(Runner直接在master上执行,不需要同步到minion上在执行)
1)开启配置文件,定义Runner的目录,runner_dirs: []
2)目录中创建python的runner文件
3) 执行Runner模块: salt-run lsdir.lsdir home
十、 Grins 模块(grains一些静态的客户端数据的定义)
作用:grains 主要负责采集客户端一些基本信息,可以客户端自定义然后汇报到master上,也可以服务器定义同步到客户端,然后在汇报上来
可以在Module的模块中调用
1)打印所有的items: salt '*' grains.items
2)列出所有的items:salt '*' grains.ls
3) 查看单个的items:salt '*' grains.item shell
十一、Pillar模块,jinja2为python前端展示的模板引擎,逻辑判断的功能都是有的
1)pillar数据定义用sls文件,文件目录位置配置文件中:pillar_roots
2)入口文件:top.sls,salt加载需要通过这个文件进行加载
3)定义完成数据文件需要同步到minion中:salt '*' saltutil.refresh_pillar,如果不生效可以重启master在次同步数据
4)查看所有的pillar数据:salt '*' pillar.data
5)查看某个pillar数据:salt '*' pillar.data minionname
6)其他python文件中使用:如:pillar['appname']
state 和模板文件中引用,模板格式变量为 {{ pillar变量 }}如:{{ pillar['flow']['maxconn'] }}
7)结合grains获取客户端的ip如: ip : {{ grains['ipv4'][0] }},放到sls文件中,可以获取客户端ip信息:salt \* pillar.data ip
十二、 cmd模块,在集群汇总统一执行shell命令:salt '*' cmd.run 'df -h'
十三、 ping模块,执行ping命令: salt '*' test.ping -t 5
十四、cp模块,作用: cp 模块由 Salt 状态系统 salt-cp 使用,可用于分发 Salt 文件服务器提供的文件
十五、 cron模块,定时执行某个文件
salt '*' cron.raw_cron root (查看定时任务)
salt '*' cron.set_job root '*' '*' '*' '*' 1 /export/scripts/rm_log.sh
salt '*' cron.rm_job root /export/scripts/rm_log.sh (写全没效果)
十六、dnsutil模块,实现被控制主机本地域名文件操作
1)添加 salt 'centos02' dnsutil.hosts_append /etc/hosts 127.0.0.1 www.test.com
2)删除 salt 'centos02' dnsutil.hosts_remove /etc/hosts www.test.com
3)api调用 client.cmd('*', 'dnsutil.hosts_append',['/etc/hosts','127.0.0.1','www.test.com'])
十七、file模块,实现被控主机常见文件操作
十八、network模块,返回被控主机的网络信息
salt '*' network.dig www.qq.com
salt '*' network.ping www.qq.com
salt '*' network.ip_addrs
十九、pkg模块,被控主机程序包管理,如yum、apt-get等
# 管理yum, apt-get等
salt '*' pkg.install php
salt '*' pkg.remove php
salt '*' pkg.upgrade (升级所有的软件包)
二十、service模块
salt '*' service.enable nginx
salt '*' service.disable nginx
salt '*' service.restart nginx
salt-api安装使用
https://www.jianshu.com/p/fdfa8ee1840a
https://cizixs.com/2015/03/24/salt-api-usage