- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Ansible URI 模块登录多个网页并检查环境是否正常运行。
目前,我希望它只登录到 2 个网页(Peoplesoft envs),但我想要一个 vars 文件,每次我想检查一个新页面时我都可以添加它。
这是我目前所拥有的,但它似乎并没有登录到两个页面,只有其中一个页面......任何帮助将不胜感激。
剧本-
---
- name: Run Selenium Test Scripts
hosts: local
vars_files:
- /etc/ansible/uri_module/vars_uri.yml
tasks:
- name: Installing URI dependancy
yum: name=python-httplib2.noarch state=present
- name: Log into Webpage
uri:
url: http://{{appserver}}:{{port}}/{{dbname}}/signon.html
method: POST
body: "name={{userid}}&password={{password}}&enter=Sign%20in"
with_file: /etc/ansible/uri_module/vars_uri.yml
变量文件
---
- { name: 'dog', appserver: 'st1920', port: '8100', dbname: 'dbdog', userid: 'user', password: 'pass' }
- { name: 'cat', appserver: 'st1921', port: '8300', dbname: 'dbcat', userid: 'user', password: 'pass' }
用-vvvv输出
ok: [local] => {"changed": false, "content_language": "en-US", "content_length": "1831", "content_type": "text/html", "date": "Thu, 13 Oct 2016 11:45:23 GMT", "invocation": {"module_args": {"backup": null, "body": "name=user&password=pass&enter=Sign%20in", "body_format": "raw", "content": null, "creates": null, "delimiter": null, "dest": null, "directory_mode": null, "follow": false, "follow_redirects": "safe", "force": null, "force_basic_auth": false, "group": null, "method": "POST", "mode": null, "owner": null, "password": null, "regexp": null, "remote_src": null, "removes": null, "return_content": false, "selevel": null, "serole": null, "setype": null, "seuser": null, "src": null, "status_code": [200], "timeout": 30, "url": "http://st1921:8300/dbcat/signon.html", "user": null, "validate_certs": true, "with_file": "/etc/ansible/uri_module/vars_uri.yml"}, "module_name": "uri"}, "last_modified": "Wed, 13 Aug 2014 11:42:42 GMT", "redirected": false, "server": "WebSphere Application Server/7.0", "status": 200}
使用 vars 文件,我希望它登录到 dog 环境,告诉我它在那里,登录到 cat 环境,告诉我它在那里。然后,如果我有马、 Frog 或任何环境,我可以继续添加到 vars 文件,而无需添加或更改剧本。目前它只登录猫,我不知道为什么。我用这个走了正确的路线吗?有更好的方法吗?由于它没有给出错误,我正在努力找出问题所在!谢谢。
最佳答案
我认为不可能像那样使用 with_file
。
将 vars_uri
字典存储在这样的列表中会更干净:
---
vars_uri:
- { name: 'dog', appserver: 'st1920', port: '8100', dbname: 'dbdog', userid: 'user', password: 'pass' }
- { name: 'cat', appserver: 'st1921', port: '8300', dbname: 'dbcat', userid: 'user', password: 'pass' }
然后像这样用 with_items
遍历它:
---
# Run Selenium Test Scripts
hosts: local
vars_files:
- /etc/ansible/uri_module/vars_uri.yml
tasks:
- name: Installing URI dependancy
yum: name=python-httplib2.noarch state=present
- name: Log into Webpage
uri:
url: http://{{ item.appserver }}:{{ item.port }}/{{ item.dbname }}/signon.html
method: POST
body: "name={{ item.userid }}&password={{ item.password }}&enter=Sign%20in"
with_items: vars_uri
关于ansible - 使ansible根据变量多次运行剧本中的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020204/
我刚刚开始学习 Ansible 并且有一个关于什么定义“游戏”的问题。如果我在看一座寺庙,我的理解是戏剧通常从以下开始: - name: xxx hosts: yyy 我读过 姓名 : 关键字
我正在尝试从 Ansible 2.3.1.0 运行剧本。我的远程计算机是 RHEL7,Python 安装在/usr/bin/python 中。 我的剧本如下所示: --- - hosts: my-te
我正在使用主机文件在主机列表上运行一个 ansible 剧本: [consul] ${HOST1} ansible_ssh_host=${HOST1} ansible_ssh_user=devops
我以前没有使用过 Ansible,有谁知道如何编写一个简单的 playbook 来卸载 nano 并在 Linux 服务器上安装 vim?我想在完成上述操作后,您需要包含一个选项来配置您想要的文本编辑
我有一个包含多个主机的系统以确保可用性。我只需要在一台主机上运行我的 Ansible 剧本。但是,其中一些主机可能无法访问。假设我有 host1、host2、host3 ... 如果无法访问 host
我不断收到用户错误:(play)在剧本中。 Ansible 似乎在提示结肠,但我尝试的任何方法都不起作用。 - hosts: all become: root tasks: -name:
可能之前已经有人问过这个问题,但目前还找不到任何有用的东西。 我有这个任务: - name: Create folder if not exists win_file: path:
我想知道是否有人找到了一种解决方案,可以在库存组未定义或为空时避免显示任何警告。 我只想让剧本的一部分运行如果组存在并且不为空,如果不存在,跳过而不警告。 请阅读https://github.com/
我想知道是否有人找到了一种解决方案,可以在库存组未定义或为空时避免显示任何警告。 我只想让剧本的一部分运行如果组存在并且不为空,如果不存在,跳过而不警告。 请阅读https://github.com/
我有一个 python 应用程序调用下面的代码,计划通过 Ansible API 以编程方式运行 Ansible 剧本,而不是使用子进程之类的东西。 下面的代码运行但实际上似乎没有执行任何内容。抓取结
目前我的剧本结构是这样的: ~/test_ansible_roles ❯❯❯ tree . . ├── checkout_sources │ └── tasks │ └── main.
我有一个使用 Vagrant 创建并使用 Ansible 配置的 EC2 实例。 我有这个使用 apt 安装 2 个软件包的任务. --- - name: Install GIT & TIG ac
我对 SSH 服务器和 Ansible 很陌生,所以这可能是一个愚蠢的问题。 尝试运行 Ansible 剧本,同时使用下面的 bash 命令使用私钥访问服务器。 ansible-playbook db
我有一堆需要经常修补的服务器。我计划使用 Ansible 来协调修补过程。这里的要点是它必须是“全有或全无”修补。要么所有服务器都打补丁,要么没有。 我正在为我的剧本考虑的任务是这样的: 1 - 转到
当我表演时 ansible -i /home/linux/ansible/my-prereqs/hosts -m ping 'test' 172.16.57.101 | SUCCESS => {
我有以下剧本: - name: packagexx version check shell: apk version packagexx | awk 'NR>1{$1=$1;print}'
我想使用公共(public) aws key 对 .pem 文件来运行 ansible 剧本。我想在不更改我的 ~/.ssh/id_rsa.pub 的情况下执行此操作我无法从当前的 ~/.ssh/id
我正在尝试运行一个相对简单的 Ansible 剧本来通过 Vagrant 配置 Ubuntu 虚拟机。大致分为 3 个步骤: 更新并安装必要的软件包 将 rbenv 安装到指定用户的家中 通过rben
我是 ansible(和 docker)的新手。我想在任何暂存/生产服务器上使用我的 ansible playbook 之前对其进行测试。 由于我无法访问空的远程服务器,我认为最简单的测试方法是使用
通过 fork 变量,我可以告诉 ansible 应该并行执行多少台主机。当之前的所有主机完成时,将执行下一个主机。如果主机上的执行时间不同,我必须等待最后一台主机完成。 是否可以告诉 ansible
我是一名优秀的程序员,十分优秀!