Ask Your Question
0

Kolla-Ansible - Can't add compute node using ansible-playbook --limit

asked 2017-02-04 22:23:13 -0600

dt.turner gravatar image

updated 2017-02-05 16:02:26 -0600

We are building / deploying trunk using Kolla containers. I’m hitting the issue referenced in https://review.openstack.org/#/c/398313/ while trying to add 2 compute nodes to an existing deployment using ansible-playbook's --limit option. I've confirmed that we have the aforementioned patch, but still hitting the issue described therein.

fatal: [slc01abc]: FAILED! => {"failed": true, "msg": "'dict object' has no attribute u'ansible_eno1'"}

We are running Ansible 2.2.1.0

We install openstack via the same ansible-playbook command invoked if you were to run kolla-ansible deploy. We have no issues installing the site. We only hit this issue when using --limit to add compute nodes to our site after adding them to the inventory file.

It's the infamous "'dict object' has no attribute" error. In our case it's complaining about 'ansible_eno1'.

We use this command line to deploy:

ansible-playbook -vvvv -i /usr/share/kolla/workspace/multinode.opscloud --limit=slc01abc -e CONFIG_DIR=/etc/kolla -e @/usr/share/kolla/workspace/globals.opscloud -e @/usr/share/kolla/workspace/passwords.opscloud -e action=deploy /usr/share/kolla/ansible/site.yml

edit retag flag offensive close merge delete

Comments

How you installed kolla, which command you executed? And which task failed?

Eduardo Gonzalez gravatar imageEduardo Gonzalez ( 2017-02-05 06:29:28 -0600 )edit

Hi. I updated my question with requested info.
Thx.

dt.turner gravatar imagedt.turner ( 2017-02-05 15:02:43 -0600 )edit

Im having same issue with kolla-ansible 6.1.0 ansible venison 2.7.2 my site.yml has the --limit fix any ideas

eranlevin gravatar imageeranlevin ( 2018-08-21 10:36:40 -0600 )edit

eranlevin, could you try with ansible 2.5, maybe something changed in ansible which makes limit not work as expected, with 2.5 for sure it works

Eduardo Gonzalez gravatar imageEduardo Gonzalez ( 2018-08-23 02:33:36 -0600 )edit

didn't help. The compute im adding has a different interface name then the others machines. seems like is looking for the interface which exit in the others computes enp3s0f0.2232 and he interface is enp6s0.2232. I did added the interfaces name to the inventory file.

eranlevin gravatar imageeranlevin ( 2018-08-26 10:24:00 -0600 )edit

2 answers

Sort by » oldest newest most voted
0

answered 2017-02-06 09:37:00 -0600

satroutr gravatar image

pinning the ansible to 2.1.1 worked for me ;)

edit flag offensive delete link more

Comments

Yep, there is an ansible bug that only delegate_facts to the first node of the list: https://github.com/ansible/ansible/is... Test downgrading to ansible 2.1

Eduardo Gonzalez gravatar imageEduardo Gonzalez ( 2017-02-06 10:51:03 -0600 )edit
0

answered 2017-02-05 15:56:41 -0600

updated 2017-02-05 15:57:42 -0600

I'm seeing the issue.

You are using trunk (master) but using kolla-ansible command. Probably made python setup.py install.

The issue here is PBR, when actually installing the python part, pbr will lookup at the version and use the latest present in pypy (not master because is not a version yet).

That is why the --limit feature is not present. You can check this in /usr/share/kolla/ansible/site.ymlto see if matches with https://github.com/openstack/kolla-an...

Probably not, so I'm going to describe how to use master branch.

Master branch only need dependencies in order to use it, not install kolla itself. Install dependencies:

 pip install -r kolla-ansible/requirements.txt -r kolla-ansible/test-requirements.txt

And execute commands from kolla-ansible/tools git directory:

./kolla-ansible

That's all, if still facing the error using master code, please open a bug report for it.

Regards

edit flag offensive delete link more

Comments

Hi. We have CI/CD infrastructure backed by our own internal mirrors and we merge upstream code every 2 weeks. Our heat stacks setup deploy environments in the manner you describe, from source. We are currently about 2 weeks behind trunk. We use ansible-playbook directly, instead of kolla-ansible.

dt.turner gravatar imagedt.turner ( 2017-02-05 16:20:48 -0600 )edit

OK- we have pbourke's patch but I don't have task "name: Detect openstack_release variable" defined in site.yml. We froze upstream merges for a bit, so I think we are 3 weeks behind now. Let me try updating site.yml and see if it makes a difference. Thanks.

dt.turner gravatar imagedt.turner ( 2017-02-05 16:24:33 -0600 )edit

Detect the version patch won't do anything with limit issue. As a recommendation, new we are in stabilizing ocata version before releasing. Some things are merged that patch bugs. I'll try tomorrow the limit feature and see if can reproduce it.

Eduardo Gonzalez gravatar imageEduardo Gonzalez ( 2017-02-05 16:39:56 -0600 )edit

Didn't make a difference. Our build environments are created by cloning kolla-ansible and running pip install of requirements.txt packages - so I think this is what you are saying to do. Using --limit works fine for our pre-deploy tasks, just not with Kolla's site playbook.

dt.turner gravatar imagedt.turner ( 2017-02-05 16:44:03 -0600 )edit

Thanks - didn't see your comment before posting mine.

dt.turner gravatar imagedt.turner ( 2017-02-05 16:46:53 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

2 followers

Stats

Asked: 2017-02-04 22:23:13 -0600

Seen: 1,154 times

Last updated: Aug 21 '18