这里将salt使用过程中遇到的所有的故障进行一个汇总。

grains 匹配后多了一个列表

salt-master中配置jinja模板来匹配自定义的grins。

vim /etc/salt/minion
grains:
roles:
- elastic-minion1
#配置文件中引用
network.host: {{ grains['roles']}}
#匹配后的结果如下:
network.host: ['elastic-minion1']

解决办法

#修改配置文件中的引用
network.host: {{ grains['roles'][0] }}
重新执行salt同步的命令:
结果如下:
network.host: elastic-minion1

报错一:

----------
ID: limit-conf-config
Function: file.managed
Name: /etc/securilty/limits.conf
Result: False
Comment: Parent directory not present
Started: 17:05:44.606040
Duration: 11.448 ms
Changes:

解决办法:

出现这个的原因是Minion上没有name参数定义的目录. 在minion上定义对应的目录就可以了

报错:salt 管理配置文件时,报错。

[root@master files]# salt '*' state.highstate
agent.niu.com:
Data failed to compile:
----------
Rendering SLS init.limit failed, render error: expected '<document start>', but found '<block mapping start>'
in "<unicode string>", line 2, column 1:
limit-conf-config:
^
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/salt/state.py", line 2509, in render_state
sls, rendered_sls=mods
File "/usr/lib/python2.7/site-packages/salt/template.py", line 79, in compile_template
ret = render(input_data, saltenv, sls, **render_kwargs)
▽ File "/usr/lib/python2.7/site-packages/salt/renderers/yaml.py", line 50, in render
data = load(yaml_data, Loader=get_yaml_loader(argline))
File "/usr/lib64/python2.7/site-packages/yaml/__init__.py", line 71, in load
return loader.get_single_data()
File "/usr/lib64/python2.7/site-packages/yaml/constructor.py", line 37, in get_single_data
node = self.get_single_node()
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 39, in get_single_node
if not self.check_event(StreamEndEvent):
File "/usr/lib64/python2.7/site-packages/yaml/parser.py", line 98, in check_event
self.current_event = self.state()
File "/usr/lib64/python2.7/site-packages/yaml/parser.py", line 174, in parse_document_start
self.peek_token().start_mark)
ParserError: expected '<document start>', but found '<block mapping start>'
in "<unicode string>", line 2, column 1:
limit-conf-config:
^

解决办法:

配置文件的路径配置错误。导致报错。修改配置文件,问题解决。

报错:saltstack 执行后CPU占用率为百分之百。

[root@10-10-121-200 ~]# salt 'linux-backup-saltminion' test.ping
Salt request timed out. The master is not responding. If this error persists after verifying the master is up, worker_threads may need to be increased.

解决办法:

使用top 查看CPU占用率为百分之百。

降低salt的线程数。

报错:配置完return后,不能向数据库写入数据:

mysql> select * from salt_returns;
Empty set (0.00 sec)

解决思路:

当遇到问题是可以将log的级别更改为debug模式来调试。

解决办法:

因为是客户端直接返回给数据库,所有客户端需要数据库的连接权限。顾所有数据库都需要添加如下内容:

vim /etc/salt/minion
mysql.host: '192.168.2.150'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306
[root@centos6 ~]# /etc/init.d/salt-minion restart
Stopping salt-minion daemon: [ OK ]
Starting salt-minion daemon: [ OK ]
[root@centos6 ~]#

报错: 执行state.sls 报错

root@10.10.121.200 files]# salt '*.service' state.sls ssh.config env=prod
chuye.backup1.service:
Data failed to compile:
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary
chuye.logstash1.service:
Data failed to compile:
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary
chuye.logstash2.service:
Data failed to compile:
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary
----------
Requisite declaration file.sshd-files in SLS ssh.config is not formed as a single key dictionary

解决办法:

 - require:
- file.sshd-files
- watch:
- file.sshd-files

上面的值配置错误

    - require:
- file: sshd-files
- watch:
- file: sshd-files

报错:在文件中调用grains报错

----------
ID: zabbix-agent-install
Function: file.managed
Name: /etc/zabbix_agentd.conf.bak
Result: False
Comment: Unable to manage file: Jinja variable 'item' is undefined
Started: 16:12:39.454923
Duration: 17.407 ms
Changes:

解决办法:

Hostname={{ grains[fqdn] }}
没有加引号
Hostname={{ grains['fqdn'] }}

报错:调用jinjia模板的时候多了一对中括号

#!/bin/sh
-IPADDR=['10.10.86.159']
+IPADDR=chuye.logstash2.service

解决办法:

Solution:

Address {{ grains['fqdn_ip4'][0] }}
Result:
Address 111.111.111.111

file.recurse 推送文件时,源文件删除后, 报错。

----------
ID: prometheus_rules
Function: file.recurse
Name: /data/app/prometheus/rules
Result: False
Comment: #### /data/app/prometheus/rules/custom.rules ####
Source file salt://prometheus/files/rules/custom.rules?saltenv=prod not found #### /data/app/prometheus/rules/mysqld.rules ####
Source file salt://prometheus/files/rules/mysqld.rules?saltenv=prod not found #### /data/app/prometheus/rules/kubelet.rules ####
Source file salt://prometheus/files/rules/kubelet.rules?saltenv=prod not found

临时解决办法(清除缓存)

rm -rf /var/cache/salt/master/file_lists/roots/*

死磕salt系列-salt 故障汇总的更多相关文章

  1. 死磕salt系列-salt文章目录汇总

    死磕salt系列-salt入门 死磕salt系列-salt配置文件 死磕salt系列-salt grains pillar 配置 死磕salt系列-salt 常用modules 死磕salt系列-sa ...

  2. 死磕nginx系列--nginx 目录

    死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统-nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕nginx系列--使用 ...

  3. 死磕nginx系列

    死磕nginx系列 死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统--nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕 ...

  4. 一生挚友redo log、binlog《死磕MySQL系列 二》

    系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据 ...

  5. MySQL强人“锁”难《死磕MySQL系列 三》

    系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 前言 最近数据库 ...

  6. S 锁与 X 锁的爱恨情仇《死磕MySQL系列 四》

    系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强 ...

  7. 如何选择普通索引和唯一索引《死磕MySQL系列 五》

    系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强 ...

  8. 五分钟,让你明白MySQL是怎么选择索引《死磕MySQL系列 六》

    系列文章 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强人"锁"难<死磕MySQL系列 三> 四.S 锁与 X 锁的 ...

  9. 字符串可以这样加索引,你知吗?《死磕MySQL系列 七》

    系列文章 三.MySQL强人"锁"难<死磕MySQL系列 三> 四.S 锁与 X 锁的爱恨情仇<死磕MySQL系列 四> 五.如何选择普通索引和唯一索引&l ...

  10. 无法复现的“慢”SQL《死磕MySQL系列 八》

    系列文章 四.S 锁与 X 锁的爱恨情仇<死磕MySQL系列 四> 五.如何选择普通索引和唯一索引<死磕MySQL系列 五> 六.五分钟,让你明白MySQL是怎么选择索引< ...

随机推荐

  1. jquery里prop和attr的区别

    本文通过具体的实例来讲述jquery里prop和attr的区别及使用方法. 在jquery里,我们要获取一个标签元素的属性,可以用attr或者prop,那么两者有什么区别呢? 其实很简单: attr可 ...

  2. 计算细胞数【BFS】

    问题描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数. 输入格式 2行:第1行为两个整数 mm, nn, 代表矩阵 ...

  3. 工厂模式的认识(GOF23)

    ---恢复内容开始--- 对于所有的设计模式来说,其本质是哪里变化封装哪里.寻找变化点,没有万能的模式,只有适合情况的应用 工厂模式从简单工厂开始演化 1.简单工厂的主要作用在于从源头开始封装实例化, ...

  4. C#迭代器、装箱/拆箱、重载等

    迭代器 迭代器是什么? 迭代器是作为一个容器,将要遍历的数据放入,通过统一的接口返回相同类型的值. 为什么要用迭代器? 为何了为集合提供统一的遍历方式,迭代器模式使得你能够获取到序列中的所有元素而不用 ...

  5. 旋转/非旋转treap的简单操作

    treap(树堆) 是在二叉搜索树的基础上,通过维护随机附加域,使其满足堆性质,从而使树相对平衡的二叉树: 为什么可以这样呢? 因为在维护堆的时候可以同时保证搜索树的性质: (比如当一棵树的一个域满足 ...

  6. JAVASE(说出ArrayList,LinkedList的储存性能和特性)

    说出ArrayList,和LinkedList的储存性能和特性? 答: ##  ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,优点是索引读取快,从最后插入和删除元素速 ...

  7. 002Conditional条件化创建bean

    01.条件化配置bean @Bean @Conditional(MagicExistsCondition.class)---->条件化创建bean public MagicBean magicB ...

  8. CAD增强属性块的还原(转)

    来自:http://blog.3snews.net/space.php?uid=13924959&do=blog&id=70174 作者:毛毛虫 Demo下载:CAD增强属性块的还原 ...

  9. 样式 bootstrap purecss Amaze UI 推荐

    Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAV ...

  10. INNODB与MyISAM两种表存储引擎区别

    mysql数据库分类为INNODB为MyISAM两种表存储引擎了,两种各有优化在不同类型网站可能选择不同,下面小编为各位介绍mysql更改表引擎INNODB为MyISAM技巧. 常见的mysql表引擎 ...