#ansible #ansible-playbook #selenium-ide
#ansible #selenium-ide
Вопрос:
Я пытаюсь использовать модуль URI Ansible для входа на несколько веб-страниц и проверки работоспособности среды.
На данный момент я хочу, чтобы он просто заходил на 2 веб-страницы (среда разработки Peoplesoft), но мне нужен файл vars, который я могу добавлять каждый раз, когда хочу проверять новую страницу.
Это то, что у меня есть до сих пор, но, похоже, оно не регистрируется на обеих страницах, только на 1 из них …. любая помощь будет оценена.
Сборник заданий —
---
- 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}}amp;password={{password}}amp;enter=Sign in"
with_file: /etc/ansible/uri_module/vars_uri.yml
Файл Vars
---
- { 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=useramp;password=passamp;enter=Sign in", "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, скажите мне, что он там. Затем, если у меня есть лошадь, лягушка или какая-либо другая среда, я могу продолжать добавлять в файл vars, не добавляя и не изменяя сборник воспроизведения. На данный момент он входит только в cat, и я не знаю почему.
Правильно ли я пошел по этому пути? Есть ли лучший способ сделать это? Поскольку он не выдает ошибку, я изо всех сил пытаюсь разобраться в проблеме!
Спасибо.
Ответ №1:
Я не думаю, что это возможно использовать 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 }}amp;password={{ item.password }}amp;enter=Sign in"
with_items: vars_uri