当在系统中有些文件分部在成百上千台机器经常修改时,使用saltstack的file.managed管理文件状态就会让你方便很多。能让你一键完成这所有修改达到你想要的文件状态,下面去看看文章吧!
salt文件状态管理模块file.managed
使用
[root@salt-master base]# tree . ├── system │ ├── files │ │ └── hosts │ └── hosts.sls └── top.sls 2 directories, 3 files [root@salt-master base]# cat top.sls base: #这里指定的环境是base,所以这个top.sls在/srv/salt/base目录下 "*": # “*”是所有主机的意思,指定单个主机直接写“salt-minion1” - system.hosts # 这里指调用了那些sls配置文件,“点”在这里是目录分级 #也就是system没有可以下的hosts.sls配置文件 [root@salt-master base]# cat system/hosts.sls /etc/hosts: #这个是配置ID和文件存放位置,是不可重复的 file.managed: #这里调用了“file.managed”salt的文件管理模块 - source: salt://system/files/hosts #source是指定文件源,"salt://"是指salt项目下文件 - mode: 644 #文件权限644 - user: root #文件用户属主 - group: root #文件的用户组
上面文件状态配置执行详解:
[root@salt-master system]# salt 'salt-minion1' state.highstate#salt '执行节点' 执行模块 下面是执行结果 salt-minion1: #执行节点 ---------- ID: /etc/hosts #配置ID Function: file.managed #模块 Result: True #执行结果True为成功 Comment: File /etc/hosts updated #文件执行操作【更新】 Started: 14:15:55.120499 #执行命令开始时间 Duration: 24.284 ms #执行的时长 Changes: #是否产生更改 ---------- diff: --- +++ @@ -1,2 +1,4 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain +salt-master 10.0.0.11 #在这个带有“+”号的行是增加的,"-"号为减少行 +salt-minion1 10.0.0.21 Summary ------------ Succeeded: 1 (changed=1) #执行成功1个,有一个文件状态发生更改 Failed: 0 #执行失败0个 ------------ Total states run: 1 #执行状态个数
salt命令管理文件
salt “*”file.managed /etc/zabbix/zabbix_agentd.conf salt://file/zabbix_agentd.conf root root 755 salt的sls文件写法 /etc/zabbix/zabbix_agentd.conf: file.managed: - source: salt://file/zabbix_agentd.conf - user: root - group: root - mode: 755
目录管理file.directory
/etc/zabbix/zabbix_agentd.conf.d: file.directory: - user: root - group: root - mode: 755 - makedirs: Ture #如果此目录用户不存在自动创建 - recurse: #如果想强制将属注数组权限递归到文件夹内文件可以使用这个 - user - group - mode
文件插入内容file.append
插入用户环境变量: /root/.bash_profile: file.append: - text: - export JAVA_HOME=/usr/local/jdk1.6.0_22 - export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
文件拷贝file.copy
此命令即可拷贝文件也可拷贝目录:
salt “*” file.copy /data/a.dump /backup/
这句话是把/data/a.dump拷贝到/backup/目录
文件软连接file.symlink
把/usr/local/zabbix/etc目录做软连接为/etc/zabbix
salt '*' file.symlink /usr/local/zabbix/etc/etc/zabbix sls写法 /etc/zabbix: file.symlink: -target: /usr/local/zabbix/etc
下面是之前写过的一些有关saltstack的文章
SaltStack使用教程(三):定时任务管理cron.present
SaltStack使用教程(六):管理服务妙用pillar实现centos6和centos7通配
常见的问题:
saltstack api wheel模块报错HTTP/1.1 401 Unauthorized