2016-10-13 14 views
1

複数のWebページにログインして環境が稼動していることを確認するために、Ansible URIモジュールを使用しようとしています。変数に基づいて複数回プレイブック内で作業を実行できるようにする

現時点では2つのWebページ(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 

バールが-vvvv VARSファイルを使用して

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}  

--- 
    - { name: 'dog', appserver: 'st1920', port: '8100', dbname: 'dbdog', userid: 'user', password: 'pass' } 
    - { name: 'cat', appserver: 'st1921', port: '8300', dbname: 'dbcat', userid: 'user', password: 'pass' } 

出力ファイル、私はそれが犬の環境にログインしたい、教えてくださいそこには、猫の環境にログインし、そこに教えてください。その後、私は馬、カエル、またはこれまでの環境を持っている場合、私はvarsファイルに追加したり、プレイブックを変更せずに続けることができます。現時点では、それは猫にのみ記録され、私は理由を知りません。 私はこれで正しいルートを下りましたか?それを行う良い方法はありますか?それはエラーを与えていない、私は問題を把握するのに苦労している!おかげさまで

答えて

2

with_fileのように使用することはできません。

このようなリストにvars_uri dictonariesを保存するためにクリーナーのようになります。このようなwith_itemsでそれ以上

--- 

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' } 

とループ:完全に働いた

--- 
# 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 
+0

は、あなたに非常に多くの先生に感謝します! – Alex

関連する問題