我正在努力解决在Ansible模板中拉动库存变量的模式,请帮忙.:)
我正在设置一个监控服务器,我希望能够使用Ansible自动配置服务器.我正在努力学习模板中的循环以允许我这样做.
到目前为止,我的半工作解决方案是在调用我所拥有的模板任务的剧本中:
monitoringserver.yml
vars:
servers_to_monitor:
- {cname: web1, ip_address: 192.168.33.111}
- {cname: web2, ip_address: 192.168.33.112}
- {cname: db1, ip_address: 192.168.33.211}
- {cname: db2, ip_address: 192.168.33.212}
Run Code Online (Sandbox Code Playgroud)
template.yml
all_hosts += [
{% for host in servers_to_monitor %}
"{{ host.cname }}{{ host.ip }}|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
{% endfor %}
]
Run Code Online (Sandbox Code Playgroud)
但这并不理想,因为我无法为要监控的不同服务器定义不同的IP地址.其他人怎么做到这一点?我敢肯定它一定是微不足道的,但我的大脑正在努力学习语法.
谢谢
艾伦
编辑:澄清生成的模板看起来像这样:
all_hosts += [
"web1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"web2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
]
Run Code Online (Sandbox Code Playgroud)
我想要的是web1/web2/db1/db2的值是不同的,这取决于我使用的是生产清单文件还是开发清单文件.
所以我花了好几个小时试图弄清楚这段代码是如何生成素数的.
lazy val ps: Stream[Int] = 2 #:: Stream.from(3).filter(i =>
ps.takeWhile{j => j * j <= i}.forall{ k => i % k > 0});
Run Code Online (Sandbox Code Playgroud)
我已经使用了许多打印笔等,但没有让它更清晰.
这就是我认为代码的作用:
/**
* [2,3]
*
* takeWhile 2*2 <= 3
* takeWhile 2*2 <= 4 found match
* (4 % [2,3] > 1) return false.
* takeWhile 2*2 <= 5 found match
* (5 % [2,3] > 1) return true
* Add 5 to the list
* takeWhile 2*2 <= 6 found match
* (6 …Run Code Online (Sandbox Code Playgroud) 我在服务器上有一大堆文件,我想将它们上传到S3.这些文件以.data扩展名存储,但实际上它们只是一堆jpeg,png,zip或pdf.
我已经编写了一个简短的脚本,它找到了mime类型并将它们上传到S3上,但是它运行起来很慢.有没有办法使用gnu parallel进行下面的运行?
#!/bin/bash
for n in $(find -name "*.data")
do
data=".data"
extension=`file $n | cut -d ' ' -f2 | awk '{print tolower($0)}'`
mimetype=`file --mime-type $n | cut -d ' ' -f2`
fullpath=`readlink -f $n`
changed="${fullpath/.data/.$extension}"
filePathWithExtensionChanged=${changed#*internal_data}
s3upload="s3cmd put -m $mimetype --acl-public $fullpath s3://tff-xenforo-data"$filePathWithExtensionChanged
response=`$s3upload`
echo $response
done
Run Code Online (Sandbox Code Playgroud)
此外,我确信这个代码一般可以大大改进:)反馈提示将不胜感激.
我是一家电信公司的独立开发人员,我正在接受任何有一点时间回答的人的数据库设计建议.
我每天插入一个表~2百万行,然后这些表每月进行存档和压缩.每个月表包含~15,000,000行.虽然这个月逐月增加.
对于我在上面做的每个插入,我将来自属于一起的行的数据组合并创建另一个"相关"表.此表目前尚未归档,因为我需要确保永远不会错过相关表的更新.(希望这是有道理的)虽然一般来说,这些信息在处理几天后应该保持相当静态.
以上所有都是完美的.然而,我的公司现在希望针对这些数据执行一些统计数据,并且这些表格变得太大而无法在合理的时间内提供结果.即使设置了适当的索引.
所以我想在完成上述所有问题后我的问题很简单.我应该编写一个脚本,将相关表中的数据分组到较小的表中.或者我应该将查询结果集存储在memcache之类的内容中?我已经在使用mysqls缓存了,但是由于对数据存储时间的控制有限,所以它并不理想.
我可以看到使用memcache之类的主要优点:
我可以看到使用memcache之类的主要缺点:
使用MySql的主要优点
使用MySql的主要缺点
抱歉相当长的问题.无论如何,这有助于我写下这些想法,并且非常感谢处理这类问题的任何建议/帮助/经验.
非常感谢.
艾伦