小编udo*_*dan的帖子

使用ctrl + c停止python

我有一个使用线程并发出大量HTTP请求的python脚本.我认为发生的事情是,当HTTP请求(使用urllib2)正在读取时,它会阻塞并且不响应CtrlC以停止程序.有没有办法解决?

python

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

如何在ansible中检查文件?

我必须检查文件是否存在/etc/.如果该文件存在,那么我必须跳过该任务.这是我正在使用的代码:

- name: checking the file exists
  command: touch file.txt
  when: $(! -s /etc/file.txt)
Run Code Online (Sandbox Code Playgroud)

如果file.txt存在则我必须跳过任务.

ansible

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

Ansible:将命令的stdout存储在新变量中?

在我的剧本中,我想创建一个包含外部命令输出的变量.之后我想在几个模板中使用该变量.

以下是剧本的相关部分:

  tasks:
    - name: Create variable from command
      command: "echo Hello"
      register: command_output
    - debug: msg="{{command_output.stdout}}"

    - name: Copy test service
      template: src=../templates/test.service.j2 dest=/tmp/test.service
    - name: Enable test service
      shell: systemctl enable /tmp/test.service
    - name: Start test service
      shell: systemctl start test.service
Run Code Online (Sandbox Code Playgroud)

让我们说这是我的模板:

[Unit]
Description=MyApp
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill busybox1
ExecStartPre=-/usr/bin/docker rm busybox1
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name busybox1 busybox /bin/sh -c "while true; do echo {{ string_to_echo }}; sleep 1; done"

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

(注意{{ …

ansible ansible-playbook

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

Ansible:按属性过滤列表

我在Ansible中注册了名为"network"的变量:

{
    "addresses": {
        "private_ext": [
            {
                "type": "fixed",
                "addr": "172.16.2.100"
            }
        ],
        "private_man": [
            {
                "type": "fixed",
                "addr": "172.16.1.100"
            },
            {
                "type": "floating",
                "addr": "10.90.80.10"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有可能获得类型="浮动"的IP地址("addr")做这样的事情?

- debug: var={{ network.addresses.private_man | filter type="fixed" | get "addr" }}
Run Code Online (Sandbox Code Playgroud)

我知道语法错了,但你明白了.

jinja2 ansible

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

Ansible - 模式755用于目录,644用于文件递归

我想允许任何人列出并读取目录树中的所有文件,但我不想让文件可执行:

dir
  \subdir1
      file1
  \subdir2
      file2
  ...
  \subdirX
      fileX
Run Code Online (Sandbox Code Playgroud)

以下任务使我的目录和文件可读,但它使所有文件也可执行:

- name: Make my directory tree readable
  file:
    path: dir
    mode: 0755
    recurse: yes
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我选择模式0644,那么我的所有文件都不可执行,但我无法列出我的目录.

是否可以为所有目录设置模式755,为目录树中的所有文件设置644?

谢谢.

file-permissions ansible

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

在playbook中修复错误后如何继续执行失败的任务?

在编写和调试Ansible playbooks时,典型的工作流程如下:

  1. ansible-playbook ./main.yaml
  2. Playbook在某些任务上失败了
  3. 修复此任务并重复第1行,等待所有先前的任务再次执行.这花费了很多时间

理想情况下,我希望在失败的任务上恢复执行,拥有库存以及之前任务收集的所有事实.它甚至可能吗?如何让剧本编写/调试更快?

ansible ansible-playbook

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

逃避Ansible中的双花括号

如何逃避Ansible 1.9.2中的双花括号?

例如,如何在以下shell命令中转义双花括号?

- name: Test 
  shell: "docker inspect --format '{{ .NetworkSettings.IPAddress }}' instance1"
Run Code Online (Sandbox Code Playgroud)

jinja2 ansible docker

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

如何将ctrl x ctrl o映射到终端vim中的ctrl空间?

在网上搜索了一下后,似乎我无法映射CtrlSpace到任何东西/很多.今天有办法做到这一点,我发现通常是2岁.

mapping vim omnicomplete

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

禁用Eclipse按住Ctrl键单击

我非常习惯用 - Ctrl点击我的光标下面的单词,在Eclipse中,作者似乎认为最好让它移动到定义.我不同意,但无法找到如何/在哪里解决这个问题.在互联网上搜索并在这里导致数百人想要Eclipse风格 - Ctrl点击无处不在 - 我想摆脱它.

怎么样?

eclipse

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

无需重启即可创建和使用组

我有一个任务,创建一个组.

- name: add user to docker group
  user: name=USERNAME groups=docker append=yes
  sudo: true
Run Code Online (Sandbox Code Playgroud)

在另一个剧本中,我需要运行一个依赖于拥有新组权限的命令.不幸的是,这不起作用,因为只有在我注销并再次登录后才会加载新组.

我尝试了一些类似的东西:

su -l USERNAME

要么

newgrp docker; newgrp

但没有任何效果.是否有任何更改迫使Ansible重新连接到主机并进行重新连接?重启将是最后一个选项.

ansible

44
推荐指数
2
解决办法
9620
查看次数