小编Sim*_*eth的帖子

条款时使用True False和Ansible

我遇到了最愚蠢的问题.我无法弄清楚如何在Ansible 2.2任务文件中测试布尔值.

vars/main.yml,我有:

destroy: false
Run Code Online (Sandbox Code Playgroud)

在剧本中,我有:

roles: 
  - {'role': 'vmdeploy','destroy': true}
Run Code Online (Sandbox Code Playgroud)

在任务文件中,我有以下内容:

- include: "create.yml"
  when: "{{ destroy|bool }} == 'false'"
Run Code Online (Sandbox Code Playgroud)

我尝试了以下各种组合:

when: "{{ destroy|bool }} == false"
when: "{{ destroy|bool }} == 'false'"
when: "{{ destroy|bool  == false}}"
when: "{{ destroy  == false}}"
when: "{{ destroy  == 'false'}}"
when: destroy|bool  == false
when: destroy|bool  == 'false'
when: not destroy|bool
Run Code Online (Sandbox Code Playgroud)

在以上所有情况下,我仍然得到:

statically included: .../vmdeploy/tasks/create.yml
Run Code Online (Sandbox Code Playgroud)

调试输出:

- debug:
    msg: "{{ destroy }}"

---

ok: [atlcicd009] => {
"msg": true …
Run Code Online (Sandbox Code Playgroud)

boolean ansible ansible-playbook ansible-2.x

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

如何使用nodejs/express上传和读取文件

有关于此的各种帖子,但我仍然没有得到它.我想上传*.csv并阅读并处理其内容.

我的玉文件就是这个

//views/import.jade
extends layout
block content
h1= title
form(action="/import", method="post", enctype="multipart/form-data")
    input(type="file", name="ufile")
    input(type="submit", name="Upload")
Run Code Online (Sandbox Code Playgroud)

-

我更改了代码,但req.files未定义

//routes/index.js

/* import page. */
router.get('/blah', function(req, res, next) {
  res.render('import', { title: 'Import Data' });
});

router.post('/import', function(req, res) {
    console.log(req.files);
});


module.exports = router;
Run Code Online (Sandbox Code Playgroud)

file-upload node.js express pug

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

Python:运行一个函数,直到另一个函数完成

我有两个功能,draw_ascii_spinnerfindCluster(companyid).

我想要:

  1. findCluster(companyid)在后台运行并在处理....
  2. 运行draw_ascii_spinner直到findCluster(companyid)完成

我该如何开始尝试解决这个问题(Python 2.7)?

python background function

10
推荐指数
2
解决办法
9585
查看次数

ansible jinja2连接IP地址

我想将一组ips共同放入一个字符串中.

示例ip1:2181,ip2:2181,ip3:2181等

{% for host in groups['zookeeper'] %}
   {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我有上面的代码,但似乎无法弄清楚如何连接成一个字符串.

搜索"Jinja2 concatenate"并不能提供我需要的信息.

jinja2 ansible ansible-playbook

9
推荐指数
3
解决办法
8259
查看次数

如果缺少Apt包,则应该执行任务

如果缺少特定的apt包,我正在寻找一系列任务.

例如:

如果没有安装石墨碳,请执行以下操作:

- apt: name=debconf-utils state=present
- shell: echo 'graphite-carbon/postrm_remove_databases boolean false' | debconf-set-selections
- apt: name=debconf-utils state=absent
Run Code Online (Sandbox Code Playgroud)

另一个例子:

如果未安装statsd,请执行以下操作:

- file: path=/tmp/build state=directory
- shell: cd /tmp/build ; git clone https://github.com/etsy/statsd.git ; cd statsd ; dpkg-buildpackage 
- shell: dpkg -i /tmp/build/statsd*.deb
Run Code Online (Sandbox Code Playgroud)

我怎么会开始破解这个?

我想也许我可以做某个-shell: dpkg -l|grep <package name>并以某种方式捕获返回代码.

apt conditional-statements ansible ansible-playbook

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

Python MySQL转义特殊字符

我正在使用python将一个字符串插入带有特殊字符的MySQL.

要插入的字符串如下所示:

macaddress_eth0;00:1E:68:C6:09:A0;macaddress_eth1;00:1E:68:C6:09:A1
Run Code Online (Sandbox Code Playgroud)

这是SQL:

UPGRADE inventory_server 
set server_mac = macaddress\_eth0\;00\:1E\:68\:C6\:09\:A0\;macaddress\_eth1\;00\:1E\:68\:C6\:09\:A1' 
where server_name = 'myhost.fqdn.com
Run Code Online (Sandbox Code Playgroud)

当我执行更新时,我收到此错误:

ERROR 1064 (42000): 
You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'UPGRADE inventory_server 
set server_mac = 'macaddress\_eth0\;00\:1E\:68\:C6\:09\' at line 1
Run Code Online (Sandbox Code Playgroud)

python代码:

sql = 'UPGRADE inventory_server set server_mac = \'%s\' where server_name = \'%s\'' % (str(mydb.escape_string(macs)),host)
print sql

try:
    con = mydb.connect(DBHOST,DBUSER,DBPASS,DB);
    with con:
       cur = con.cursor(mydb.cursors.DictCursor)
       cur.execute(sql)
   con.commit() …
Run Code Online (Sandbox Code Playgroud)

python mysql

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

python:从主机字符串中剥离最后一个句点

我很难搞清楚如何从主机名中剥离最后一段时间......

电流输出:

  • domain.com.
  • suddomain.com.
  • domain.com.
  • subdomain.subdomain.com.
  • subdomain.com.

期望的输出:

  • domain.com
  • subdomain.com
  • domain.com
  • subdomain.subdomain.com

尝试1:

print string[:-1]  #it works on some lines but not all
Run Code Online (Sandbox Code Playgroud)

尝试2:

 str = string.split('.')
 subd = '.'.join(str[0:-1])
 print subd    # does not work at all 
Run Code Online (Sandbox Code Playgroud)

码:

global DOMAINS

if len(DOMAINS) >= 1:
  for domain in DOMAINS:
    cmd = "dig @adonis.dc1.domain.com axfr %s |grep NS |awk '{print $1}'|sort -u |grep -v '^%s.$'" % (domain,domain)
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,   shell=True)
    string = p.stdout.read()
    string = string.strip().replace(' ','')
    if …
Run Code Online (Sandbox Code Playgroud)

python regex replace

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

来自相关模型的 django 管理显示字段

我想在的管理显示中显示ip_addressfromHosts模型HostInfo

# models.py
class Hosts(models.Model):
  host_name = models.CharField(max_length=200, unique=True)
  ip_address = models.GenericIPAddressField(protocol='both', unpack_ipv4=True)
  def __unicode__(self):
    return unicode(self.host_name)
  def hostip(self):
    return unicode(self.ip_address)
Run Code Online (Sandbox Code Playgroud)

我在 admin.py 中有以下内容

# admin.py
class HostInfoResource(resources.ModelResource):

    host = fields.Field(column_name='host',
                              attribute='host',
                              widget=ForeignKeyWidget(Hosts, 'host_name'))
    project = fields.Field(column_name='project',
                                attribute='project',
                                widget=ForeignKeyWidget(Project, 'project_name'))
    env = fields.Field(column_name='env',
                            attribute='env',
                            widget=ForeignKeyWidget(Env, 'env_name'))

    class Meta:
        model = HostInfo
        skip_unchanged = True
        import_id_fields = ('id', 'host','ticket','deployed_by')
        export_order = ('id', 'host', 'nexpose_level','cpus','memory','os',
                        'sudoers_copied', 'sudo_granted', 'extra_disks','app_type','app_name',
                        'vcenter_status','ticket','env','project','deployed_by',
                        'updated_on','created_on')

class HostInfoAdmin(ImportExportModelAdmin):
    resource_class = HostInfoResource
    list_display …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin django-import-export

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

django 1.5如何从内存中读取csv

我试图找出如何读取上传的CSV而不将其保存到磁盘...

我被困在form.cleaned_data ['file'].读...我似乎没有得到任何输出

如果我只能弄清楚如何获得输出,那么我可以编写一个适当的函数来处理数据行.

#addreport.html
<form enctype="multipart/form-data" method="post" action="/products/addreport/">   {%csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
Run Code Online (Sandbox Code Playgroud)

#forms.py
from django import forms
#
class UploadFileForm(forms.Form):
    file  = forms.FileField()
Run Code Online (Sandbox Code Playgroud)

-

# views.py
def addreport(request):
if request and request.method == "POST":
    form = UploadFileForm(request.POST, request.FILES)
    if form.is_valid():
               print form.cleaned_data['file'].read()
    else:
        print form.errors
        print request.FILES
        #form = UploadFileForm()
else:
    form = UploadFileForm()

return render_to_response('products/addreport.html', {'form': form},context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

csv django file-upload

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

kubectl 创建带标签的命名空间

有没有一种方法可以使用一个标签创建名称空间 kubectl

例如

kubectl create ns <newnamespace> label=appid:foo12
Run Code Online (Sandbox Code Playgroud)

而不是使用kubectl apply -f <somefile>

kubernetes kubectl

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