我正在使用[文件查找],它读取整个文件并将内容存储在变量中.我的游戏看起来像这样:
- name: Store foo.xml contents in a variable
set_fact:
foo_content: "{{ lookup('file', 'foo.xml' ) | replace('\n', '')}}"
Run Code Online (Sandbox Code Playgroud)
所以上面的代码读取foo.xml文件并将其存储在变量中,但问题是当foo.xml行中有换行符时,它还包括变量中的换行符.
我foo.xml是这个档案:
<?xml version="1.0" encoding="utf-8"?>
<initialize_param>
<secrets>
<my_secret id="99">3VMjII6Hw+pd1zHV5THSI712y421USUS8124487128745812sajfhsakjfasbfvcasvnjasjkvbhasdfasgfsfaj5G8A9+n8CkLxk7Dqu0G8Jclg0eb1A5xeFzR3rrJHrb2GBBa7PJNVx8tFJP3AtF6ek/F/WvlBIs2leX2fq+/bGryKlySuFmbcwBsThmPJC5Z5AwPJgGZx</my_secret>
</secrets>
</initialize_param>
Run Code Online (Sandbox Code Playgroud)
输出删除换行符\n但也包含选项卡\ r&\ t
我需要摆脱\n,需要摆脱额外的格式(\ r&\ t),此外,在替换过滤器后,我得到错误,同时触发数据库更新查询
stderr: /bin/sh: 1: cannot open ?xml: No such file
Run Code Online (Sandbox Code Playgroud) 我有一个简单的条件,我需要检查一个dict值是否包含[Complted]特定键中的说法.
例如:
'Events': [
{
'Code': 'instance-reboot'|'system-reboot'|'system-maintenance'|'instance-retirement'|'instance-stop',
'Description': 'string',
'NotBefore': datetime(2015, 1, 1),
'NotAfter': datetime(2015, 1, 1)
},
],
Run Code Online (Sandbox Code Playgroud)
我需要在启动时检查Description密钥是否包含[Complted]在其中.即
'Descripton':'[已完成]实例正在降级硬件上运行'
我怎么能这样做?我正在寻找类似的东西
if inst ['Events'][0]['Code'] == "instance-stop":
if inst ['Events'][0]['Description'] consists '[Completed]":
print "Nothing to do here"
Run Code Online (Sandbox Code Playgroud) 为什么以下简单循环不保存循环i结束时的值?
for i in range( 1, 10 ):
print i
i = i + 3
Run Code Online (Sandbox Code Playgroud)
以上打印:
1
2
3
4
5
6
7
8
9
Run Code Online (Sandbox Code Playgroud)
但它应该打印:
1
4
7
Run Code Online (Sandbox Code Playgroud) 我有一个具有以下值的变量:
name_prefix: stage-dbs
Run Code Online (Sandbox Code Playgroud)
我在我的剧本中有一个任务,必须检查这个变量并查看它是否包含*-dbs,如果条件满足则应该处理.我写了这样的东西:
- name: Ensure deployment directory is present
file:
path=/var/tmp/deploy/paTestTool
state=directory
when: name_prefix =="*-dbs" # what condition is required here to evaulate the rest part of variable??
Run Code Online (Sandbox Code Playgroud)
应该使用什么正则表达式模式或如何在这里使用正则表达式?
我希望每天从下午4点到4点半之间从某个松弛的频道检索松弛的消息.Slack为https://api.slack.com/methods/channels.history提供了一个频道的Web API
上面的API提供了2个属性作为latest&oldest,这意味着我可以在这两个时间戳之间提取消息.但我的问题是这些是时间戳,我必须提出时间戳请求:
latest 1459750060.000002 #end
oldest 1459750060.000002 #start
Run Code Online (Sandbox Code Playgroud)
我想将2个数据作为简单的时间对象传递,即
latest_simple = 0430pm #end
oldest_simple = 0400pm #start
latest_real_format = convert_to_timestamp(latest_simple)
oldest_real_format = convert_to_timestamp(oldest_simple )
Run Code Online (Sandbox Code Playgroud)
所以,如果我能以某种方式获得时间戳,那么我将很容易地向API发送make请求
payload = {'token': 'XXXXXXXx', 'channel': 'C0L8MGLMN' , 'latest': latest_real_format , 'oldest':oldest_real_format }
r = requests.get('https://slack.com/api/channels.history', params=payload)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
我需要将几个 .json 文件发送到 AWS SQS 队列服务。有人可以告诉我使用 boto 的确切代码可以完成此任务吗?
我有一台运行 kibana 的服务器,我已将其设置为从本地主机访问。这是一个 linux 服务器,所以我可以这样做:
links http://localhost:5601
Run Code Online (Sandbox Code Playgroud)
这运行良好。我需要将此 kibana 服务器置于 HAProxy 之后,它将充当 Kibana 的反向代理。
我的 Haproxy 配置文件(/etc/haproxy/haproxy.cfg)看起来像
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
defaults
log global
mode …Run Code Online (Sandbox Code Playgroud) 我的python代码中有3个字典:
self.new_port_dict = {} #carian来存储curr_host的新端口self.old_port_dict = {} #class to存储old_host中的旧端口self.results_ports_dict = {} #保存已更改/新添加端口的结果该脚本需要比较哪个端口发生了变化,我几乎无法提供帮助我:
def comp_ports(self,filename):
try:
f = open(filename)
self.prev_report = pickle.load(f) # NmapReport
for s in self.prev_report.hosts:
self.old_port_dict[s.address] = set()
for x in s.get_open_ports():
self.old_port_dict[s.address].add(x)
for s in self.report.hosts:
self.new_port_dict[s.address] = set()
for x in s.get_open_ports():
self.new_port_dict[s.address].add(x)
print "The following Host/ports were available in old scan : !!"
print `self.old_port_dict`
print "--------------------------------------------------------"
print "The following Host/ports have been added in new scan: !!"
print `self.new_port_dict`
for h …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序服务器(Ubuntu 14.04),上面运行着 tomcat 服务器。这个相同的应用程序服务器由“ rsyslog ”服务器组成,该服务器被配置为将日志发送到NXlog服务器(在 Ubuntu 14.04 上)。
rsyslog 服务器将其所有日志(包括 tomcat 错误、异常和堆栈跟踪)发送到 syslog 服务器,但问题在于多行日志。当日志消息存储在文件中或在没有任何封装的情况下通过网络转发时,跨越多行的消息中出现的换行符会混淆简单的基于行的解析器,这些解析器将每一行视为一个单独的事件;&因此我的异常日志在新行中被破坏。
我的 rsyslog 版本是:7.4.4
rsyslog.conf 文件如下所示:
#################
#### MODULES ####
#################
$EscapeControlCharactersOnReceive off
$LocalHostName nishant-app
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)i
#$ModLoad immark # provides --MARK-- message capability
$ModLoad imfile
$ModLoad omrelp
#$ModLoad omhdfs
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
#$ModLoad …Run Code Online (Sandbox Code Playgroud) 我有一个包含 n 条消息的 Amazon SQS 队列,我想使用 python 代码从队列中删除消息。我当前的代码如下所示:
import boto.sqs
sqs = boto.sqs.connect_to_region("ap-southeast-1", aws_access_key_id='XXX', aws_secret_access_key='XXX')
q = sqs.get_queue("grand_torm") #SQS queue name
#text_file = open('download.json', 'w')
m = q.read(visibility_timeout=15)
if m == None:
print "No message!"
else:
count = 0
while (count < 50):
q.delete_message(m)
print "DELETED"
Run Code Online (Sandbox Code Playgroud)
但这一次只能删除一条消息,只有“DELETED”才能打印 50 次。我在这里错过了什么?