- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在本地流浪虚拟机中安装和配置应用程序服务器。使用 Ansible 进行配置。首次启动完成后即可进行配置。此时它正在监听 localhost:8000。之后我可以复制配置文件并重新启动服务。之后端口更改为8081。
问题是,我需要等待第一次启动完成,然后才能覆盖配置文件。为了检查第一次启动是否完成,我在循环中使用了 url 模块,效果很好。因此,虚拟机在第一次 vagrant up --provision 时被配置。
但是,如果有另一个 vagrant 规定,并且 Ansible playbook 正在使用循环执行 url 模块,那么它会因为端口更改而失败。所以我尝试了这个:
- name: configure / check for default server.conf
- command: grep "url.httpport=8081" "/{{ base_dir }}/conf/server.conf"
ignore_errors: yes
register: output
- name: configure / Check that app-server is installed successfully (8000)
block:
- get_url:
url: http://localhost:8000/version.txt
dest: /tmp
register: result
until: result is succeeded
retries: 10
delay: 30
register: started
when: output.rc == 1
- name: configure / Check that app-server is installed successfully (8081)
block:
- get_url:
url: http://localhost:8081/version.txt
dest: /tmp
register: result
until: result is succeeded
retries: 10
delay: 30
register: started
when: output.rc == 0
我的想法是,关于返回代码,选择正确的 block 并跳过另一个 block 。但结果是这样的:
TASK [glue-tomcat8 : configure / check for default server.conf] ***
fatal: [devaws]: FAILED! => {"changed": true, "cmd": ["grep", ".url.httpport=8081", "/opt5/conf/server.conf"], "delta": "0:00:00.003016", "end": "2018-05-22 07:11:51.382776", "msg": "non-zero return code", "rc": 1, "start": "2018-05-22 07:11:51.379760", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
...ignoring
TASK [glue-tomcat8 : Check that app server is installed successfully (8000)] ***
fatal: [devaws]: FAILED! => {"msg": "The conditional check 'result is succeeded' failed. The error was: The failed test expects a dictionary"}
看来,get_url 模块的条件检查存在问题。当单独使用时,没有条件时(当)并且不在 block 内时,它可以工作。我的猜测是,Ansible 在组合直到和何时方面存在问题。我在文档中找不到与此相关的任何内容。因此,我们非常感谢任何帮助,并提前感谢您。
最佳答案
我成功了。这是第 8 层(我)的问题:)启动的变量是剩余的,不需要。看起来 Ansible 被这个变量激怒了。这是我的工作代码:
- command: grep "url.httpport=8081" "/{{ base_dir }}/conf/server.conf"
ignore_errors: yes
register: output
- get_url:
url: http://localhost:8000/version.txt
dest: /tmp
register: result
until: result is succeeded
retries: 10
delay: 30
when: output.rc == 1
- get_url:
url: http://localhost:8081/version.txt
dest: /tmp
register: result
until: result is succeeded
retries: 10
delay: 30
when: output.rc == 0
关于ansible:将循环(直到)与条件(当)结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462074/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!