小编Nis*_*ngh的帖子

如何从Ansible中的lookup()模块的结果中删除断路器字符'\n'?

我正在使用[文件查找],它读取整个文件并将内容存储在变量中.我的游戏看起来像这样:

  - 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)

string replace ansible

25
推荐指数
3
解决办法
5万
查看次数

如何检查dict值是否包含单词/字符串?

我有一个简单的条件,我需要检查一个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)

python dictionary

12
推荐指数
1
解决办法
1799
查看次数

'For循环行为在Python中

为什么以下简单循环不保存循环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)

python for-loop

10
推荐指数
1
解决办法
1319
查看次数

如何评估Ansible任务的when条件

我有一个具有以下值的变量:

   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)

应该使用什么正则表达式模式或如何在这里使用正则表达式?

regex ansible ansible-playbook

6
推荐指数
2
解决办法
2万
查看次数

如何将简单系统24小时格式转换为时间戳

我希望每天从下午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)

我怎样才能做到这一点 ?

timestamp slack-api slack

6
推荐指数
1
解决办法
6201
查看次数

如何使用 BOTO 将 JSON 文件发送到 Amazon SQS 队列

我需要将几个 .json 文件发送到 AWS SQS 队列服务。有人可以告诉我使用 boto 的确切代码可以完成此任务吗?

boto amazon-sqs amazon-web-services

5
推荐指数
1
解决办法
1万
查看次数

如何通过 HAproxy 访问 Kibana 仪表板

我有一台运行 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)

reverse-proxy haproxy elasticsearch kibana-4 devops

5
推荐指数
1
解决办法
3752
查看次数

如何比较字典,看看有什么变化?

我的python代码中有3个字典:

  1. self.new_port_dict = {} #carian来存储curr_host的新端口
  2. self.old_port_dict = {} #class to存储old_host中的旧端口
  3. 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)

python dictionary

5
推荐指数
1
解决办法
154
查看次数

rsyslog 的多行日志问题

我有一个应用程序服务器(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)

logging tomcat rsyslog nxlog papertrail-app

4
推荐指数
1
解决办法
9136
查看次数

使用 Python 删除 SQS 的所有消息

我有一个包含 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 次。我在这里错过了什么?

python amazon-sqs python-2.7

3
推荐指数
1
解决办法
3391
查看次数