小编Kev*_*n C的帖子

Ansible - 如果不存在,则创建多个文件夹

目标:

  • 如果它们不存在,则创建多个目录.
  • 不要更改现有文件夹的权限

目前的剧本:

- name: stat directories if they exist
  stat:
    path: "{{ item }}"
  with_items:
    - /data/directory
    - /data/another
  register: myvar

- debug: var=myvar.results

- name: create directory if they don't exist
  file:
    path: "{{ item.invocation.module_args.path }}"
    state: directory
    owner: root
    group: root
    mode: 0775
  with_items: "{{ stat.results }}"
  # when: myvar.results.stat.exists == false
Run Code Online (Sandbox Code Playgroud)

when说法是错误的.

我看了一下提供的例子; http://docs.ansible.com/ansible/stat_module.html.但这仅适用于单个文件夹.

ansible

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

如何在 Ansible Jinja2 (.j2) 模板中指定“if else”语句?

我正在ifbash 脚本中运行一条语句。我需要在不同的服务器上部署 bash 脚本。下面是我的 if else 语句。

DIR="/backup/db"
first_time=true
{% if [ -d "$DIR" ]; then %}
  first_time=false
  sudo -u tomcat ln -s /backup/app /opt/tomcat/latest/webapps/msales
  sudo -u tomcat ln -s /backup/store/logs /opt/tomcat/latest/logs
  .....etc
{% fi %}
Run Code Online (Sandbox Code Playgroud)

我正在使用 Ansible 将此script.sh.j2部署到其他服务器。但它说

""msg": "AnsibleError: 模板化字符串时出现模板错误:预期标记 ',', 得到 'string'。"

如何在j2模板中使用if语句?

bash scripting jinja2 ansible

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

Ansible - 如何从列表中删除项目?

我想根据另一个列表从列表中删除一个项目.

"my_list_one": [
    "item1",
    "item2",
    "item3"
] }
Run Code Online (Sandbox Code Playgroud)

我的第二个清单:

"my_list_two": [
    "item3"
] }
Run Code Online (Sandbox Code Playgroud)

如何从此列表中删除"item3"以设置新事实?
我尝试使用' - '和这个:

set_fact: "{{ my_list_one | union(my_list_two) }}"
Run Code Online (Sandbox Code Playgroud)

最终目标:

"my_list_one": [
    "item1",
    "item2"
] }
Run Code Online (Sandbox Code Playgroud)

python jinja2 ansible

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

适用于 CentOS 7 的 OpenSSL 1.1.1 RPM

我想要一个用于 CentOS 7 的 OpenSSL 1.1.1 RPM 包。(不是 1.1.0...)

我在谷歌上搜索了这个非常具体的 RPM 文件,但它根本不可用。

我也发了邮件openssl-users,但没有人回复正确的答案。

- - 编辑 - -

最后,该包可用。

openssl rpm

9
推荐指数
0
解决办法
4712
查看次数

Docker 无法导入缓存清单

我有 Docker 镜像,它们是从私人存储库中提取的:

docker pull xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/image/name:base
base: Pulling from image/name
Digest: sha256:3ac2e726336b9048a4bdcc2188bcca0d30e282892f78169939ae42f76c13bd57
Status: Downloaded newer image for xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/image/name:base
Run Code Online (Sandbox Code Playgroud)

然后使用缓存构建图像:

docker build --cache-from xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/image/name:base:base -t xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/image/name:base -t simage/name:base -f Dockerfile.base .
Run Code Online (Sandbox Code Playgroud)

获取缓存错误:

importing cache manifest from xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.c...
       digest: sha256:7d93b70e81596668b75abedddf217ef3a7dfc0fc4b43141caad899a350105ca3
         name: "importing cache manifest from xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/image/name:base"
      started: 2020-02-18 11:11:49.478586089 +0000 UTC
    completed: 2020-02-18 11:11:49.706587921 +0000 UTC
     duration: 228.001832ms
        error: "invalid build cache from {MediaType:application/vnd.docker.distribution.manifest.v2+json Digest:sha256:3ac2e726336b9048a4bdcc2188bcca0d30e282892f78169939ae42f76c13bd57 Size:3665 URLs:[] Annotations:map[] Platform:<nil>}"

error on cache query: invalid build cache from {MediaType:application/vnd.docker.distribution.manifest.v2+json Digest:sha256:3ac2e726336b9048a4bdcc2188bcca0d30e282892f78169939ae42f76c13bd57 Size:3665 URLs:[] Annotations:map[] …
Run Code Online (Sandbox Code Playgroud)

caching docker dockerfile docker-compose amazon-ecr

8
推荐指数
0
解决办法
7283
查看次数

Ansible - 查找和设置权限,包括粘滞位

使用Ansible 2.1.4.0

是否可以sticky bit在1个任务中设置和文件夹权限?

例;

# Shell is used over find module cause symlink breaks and performance

- name: Find directories in /tmp which are not valid
  shell: find
    /tmp/test -type d
    \( ! -user root -o ! -group root -o ! -perm 775 \)
  register: find1

- name: Set 775 for found directories
  file:
    path: "{{ item }}"
    owner: root
    group: vagrant
    mode: 0775
    state: directory
  with_items: "{{ findPermission1.stdout_lines | default([]) }}"


- name: Find directories in …
Run Code Online (Sandbox Code Playgroud)

permissions ansible

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

Ansible - 按照我想要的顺序与主机一起玩

运行Playbook时,Ansible会将节点随机设置为第一个,第二个和第三个节点.

TASK [setup] ********
ok: [node-p02]
ok: [node-p03]
ok: [node-p01]
Run Code Online (Sandbox Code Playgroud)

如何配置Ansible以确保其播放为:

TASK [setup] ********
ok: [node-p01]
ok: [node-p02]
ok: [node-p03]
Run Code Online (Sandbox Code Playgroud)

Serial: 1 不是一个选项,因为它减慢了游戏速度,我的剧本只适用于一个游戏中的3个节点.

ansible

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

Ansible-安装到主要版本的安装软件包

回购中的实际包名称为package-2.6.12-3.el7.x86_64

目标是使用Ansible安装软件包,以便:

  • 确保已安装Point Release,例如package-2.6
  • 不安装主要版本,例如package-3.0
  • 次要版本的更新,例如程序包2.6.13-4

该仓库可以不时更新软件包,但我不知道何时。

我的想法是安装这样的软件包;

- name: Install package
  yum:
    name: package-2.6
    state: present
Run Code Online (Sandbox Code Playgroud)

但是任务失败,因为package-2.6不在仓库中。尽管package该方法很简单,但并不是未来的证明。


更新:

似乎通配符* do有效,例如package-2.6*

packages ansible

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

Ansible - ignore_errors WHEN

Ansible 2.0.4.0

大约有三个任务随机失败.失败的输出是:

OSError: [Errno 32] 
Broken pipefatal: [machine1]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}
Run Code Online (Sandbox Code Playgroud)

是否可以忽略错误,如果Errno 32在错误的输出中.

- name: This task sometimes fails
  shell: fail_me!
  ignore_errors: "{{ when_errno32 }}"
Run Code Online (Sandbox Code Playgroud)

我知道这是一个解决方法.解决'真实'问题可能会占用更多时间.

ansible

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

Scrapy-简单的验证码求解示例

在网上寻找Scrapy解决验证码时,我什至没有很好的例子可以入手。

我创建了一个非常基本的验证码页面。http://145.100.108.148/login3/

是否有人提供了可行的示例来解决此问题,或者至少以体面的方式配置了Scrapy来尝试解决此问题。

python captcha scrapy

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