web-dev-qa-db-ja.com

「提供されたホストパターンに一致できませんでした、無視:bigip」エラーを修正する方法は、タワーではなく、Ansibleで機能します

Ubuntu 16.04でAnsible Tower v3.4.1とAnsible v2.7.6を実行していますVM VirtualBoxで実行しています。コマンドラインから「ansible-playbook」を使用して実行すると機能するプレイブックを実行します「しかし、Ansible Towerから実行しようとすると失敗します。AnsibleTowerで何か設定が間違っている必要があることはわかっていますが、見つかりません。

インベントリ(ホスト)ファイルにどのような変更を加えても、この警告が表示されます。

$ ansible-playbook 2.7.6

config file = /etc/ansible/ansible.cfg    
configured module search path = [u'/var/lib/awx/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python2.7/dist-packages/ansible    

executable location = /usr/bin/ansible-playbook
python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]

Using /etc/ansible/ansible.cfg as config file

SSH password:     
**/tmp/awx_74_z6yJB4/tmpVlXGCX did not meet Host_list requirements**, check plugin documentation if this is unexpected

Parsed /tmp/awx_74_z6yJB4/tmpVlXGCX inventory source with script plugin

PLAYBOOK: addpool.yaml *********************************************************

1 plays in addpool.yaml

 [WARNING]: **Could not match supplied Host pattern, ignoring: bigip**

PLAY [Sample pool playbook] ****************************************************
17:05:43

skipping: no hosts matched

YAMLのインベントリプラグインを有効にし、hostsファイルをhosts.ymlファイル。

これが私のhostsファイルです:

 192.168.68.253
 192.168.68.254
 192.168.1.165

[centos]
dad2 ansible_ssh_Host=192.168.1.165

[bigip]
bigip1 ansible_Host=192.168.68.254
bigip2 ansible_Host=192.168.68.253

これが私のプレイブックです:

---

- name: Sample pool playbook
  hosts: bigip 
  connection: local

  tasks:
    - name: create web servers pool
      bigip_pool:
        name: web-servers2
        lb_method: ratio-member
        password: admin
        user: admin
        server: '{{inventory_hostname}}'
        validate_certs: no
3
Steve J

「hosts:bigip」を「hosts:all」に置き換え、Towerのインベントリを、変更したい2つのホストのみを含む「bigip」として指定しました。これは私が探している出力を提供するようです。

「ansible-playbook」コマンドラインの場合、「-limit bigip」を追加しました。これにより、探している出力が提供されるようです。

だから、うまくいっているように見えますが、これが「ベストプラクティス」の用途であるかどうかはわかりません。

ありがとう、スティーブ

1
Steve J

connection: localを削除する必要があると思います。

これらのタスクをbigipグループのホストでのみ実行するようにhosts: bigipに指定しました。次にconnection: localを指定すると、bigipグループのノードではなく、コントローラーノード(つまり、localhost)でタスクが実行されます。 Localhostはbigipグループのメンバーではないため、劇中のタスクはトリガーされません。

0
clockworknet