Skip to content

Provisioning F.A.Q

Ramprakash Ram Mohan edited this page Apr 22, 2018 · 35 revisions
  1. Seeing error below:

    [root@a6s14 contrail-ansible-deployer]# ansible-playbook -i inventory/ -e orchestrator=vcenter  playbooks/install_contrail.yml
    ...
    ...
    ERROR! Unable to retrieve file contents
    Could not find or access '/root/contrail-kolla-ansible/ansible/kolla-host.yml'
    [root@a6s14 contrail-ansible-deployer]# 
    

    Resolution: Please run the command below first before running the install_contrail play

    ansible-playbook -i inventory/ playbooks/configure_instances.yml
    
  2. Seeing error below:

    TASK [memcached : Copying over config.json files for services] *******************************************************************************************************************************
    task path: /root/contrail-kolla-ansible/ansible/roles/memcached/tasks/config.yml:10
    failed: [192.168.122.84] (item=memcached) => {
        "changed": false,
        "item": "memcached",
        "msg": "AnsibleUndefinedVariable: {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] if orchestration_engine == 'ANSIBLE' else '0.0.0.0' }}: 'dict object' has no attribute 'ipv4'"
    }
    

    Resolution: Check if you have specified the right values for "network_interface" under "kolla_globals" section in your instances.yaml file. This interface must have an IP address.

  3. How to specify host specific parameters (for example, the interface names are different for the different servers in the cluster)?

    Resolution: Check the example here.

  4. Containers are not accessible (pulled) from private registry given as "CONTAINER_REGISTRY".

    Resolution: Check that "REGISTRY_PRIVATE_INSECURE" is set to True. Example here: Sample instances.yaml

  5. vrouter module is not getting installed on the computes. Seeing the vrouter container in error state and docker logs show the below error:

        [srvr5] ~ # docker logs vrouter_vrouter-kernel-init_1
        /bin/cp: cannot create regular file '/host/bin/vif': No such file or directory
        INFO: Load kernel module for kver=3.10.0
        INFO: Modprobing vrouter /opt/contrail/vrouter-kernel-modules/3.10.0-693.21.1.el7.x86_64/vrouter.ko
                      total        used        free      shared  buff/cache   available
        Mem:            62G        999M         55G        9.1M        5.9G         60G
        Swap:            0B          0B          0B
                      total        used        free      shared  buff/cache   available
        Mem:            62G        741M         61G        9.1M        923M         61G
        Swap:            0B          0B          0B
        insmod: ERROR: could not insert module /opt/contrail/vrouter-kernel-modules/3.10.0-693.21.1.el7.x86_64/vrouter.ko: Unknown symbol in module
        ERROR: Failed to insert vrouter kernel module
    

    Resolution: The vrouter module is now dependent on the host kernel being 3.10.0-693.21.1.el7.x86_64. Install this kernel version on the target nodes before running provision:

        yum -y install kernel-3.10.0-693.21.1.el7.x86_64                                                                                                                                                    
        yum update
        reboot
    
  6. Error retrieving container images:

       fatal: [10.87.70.19]: FAILED! => {“changed”: true, “msg”: “’Traceback (most recent call last):
       File   \“/tmp/ansible_x7Zn20/ansible_module_kolla_docker.py\“, line 785, in main\\n    
       result = bool(getattr(dw,  module.params.get(\\‘action\\‘))())\\n  
       File \“/tmp/ansible_x7Zn20/ansible_module_kolla_docker.py\“, line 583, in recreate_or_restart_container\\n
       self.start_container()\\n  File \“/tmp/ansible_x7Zn20/ansible_module_kolla_docker.py\“, line 595, in start_container\\n
       self.pull_image()\\n  File \“/tmp/ansible_x7Zn20/ansible_module_kolla_docker.py\“, line 445, in pull_image\\n    
       repository=image, tag=tag, stream=True\\n
       File \“/usr/lib/python2.7/site-packages/docker/api/image.py\“, line 175, in pull\\n
       self._raise_for_status(response)\\n  File \“/usr/lib/python2.7/site-packages/docker/client.py\“, line 173, in _raise_for_status\\n
       raise errors.NotFound(e, response, explanation=explanation)\\nNotFound: 404 Client Error: Not Found (\“{\“message\“:\“manifest for opencontrailnightly/contrail-openstack-ironic-notification-manager:master-centos7-ocata-bld-33 not found\“}\“)\\n’“}
        to retry, use: --limit @/root/contrail-ansible-deployer/playbooks/install_contrail.retry
    

    Resolution: Check CONTRAIL_VERSION. It should have a valid tag that is found here: opencontrailnightly tags

  7. Seeing this error:

       2018-03-21 00:47:16,884 p=16999 u=root |  TASK [iscsi : Ensuring config directories exist] *********************************************************************************************************************************
    
       2018-03-21 00:47:16,959 p=16999 u=root |  fatal: [10.0.0.4]: FAILED! => {"msg": "The conditional check 
       'inventory_hostname in groups['compute'] or inventory_hostname in groups['storage']' failed. The error was: 
       error while evaluating conditional (inventory_hostname in groups['compute'] or inventory_hostname in 
       groups['storage']): Unable to look up a name or access an attribute in template string ({% if 
       inventory_hostname in groups['compute'] or inventory_hostname in groups['storage'] %} True {% else %} False 
       {% endif %}).\nMake sure your variable name does not contain invalid characters like '-': argument of type 
       'StrictUndefined' is not iterable\n\nThe error appears to have been in '/root/contrail-kolla-
       ansible/ansible/roles/iscsi/tasks/config.yml': line 2, column 3, but may\nbe elsewhere in the file depending 
       on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: Ensuring config 
       directories exist\n  ^ here\n"}
    
       2018-03-21 00:47:16,961 p=16999 u=root |        to retry, use: --limit @/root/contrail-ansible-
       deployer/playbooks/install_contrail.retry
    

Resolution:: This is a result of the recent change done via Bug #1756133 There is a use-case where vrouter needs to be provisioned without being accompanied by nova-compute. So the "openstack_compute" is not automatically inferred when "vrouter" role is specified. The "openstack_compute" role needs to be explicitly stated along with "vrouter"

  1. Why do I need haproxy and virtual IP on a single openstack cluster?

    By default all openstack services will listen on the IP/interface provided by kolla_internal_vip_address/network_interface variables under the "kolla_globals" section. This will in most cases correspond to the ctrl-data network. Note that this will mean even horizon will now only run on ctrl-data network only. The only way kolla provides access to horizon on the management network is by using haproxy and keepalived. Enabling keepalived in turn means that a virtual IP is required for VRRP which cannot be the interface IP itself. There is no way to enable haproxy without enabling keepalived using kolla configuration parameters. This is the reason you need to provide two virtual IP address one on management (kolla_external_vip_address) and one on ctrl-data-network (kolla_internal_vip_address). Once this is given, horizon will be accessible on the management network via the kolla_external_vip_address.

  2. How to use the kolla_toolbox container to run openstack CLI commands

    The /etc/kolla/kolla-toolbox directory of the base host on which openstack containers are running is mounted and accessible as /var/lib/kolla/config_files from inside the kolla_toolbox container. In case the user needs other files when executing openstack commands (for example 'openstack image create' will need image file), then the user can copy the relevant files into the /etc/kolla/kolla-toolbox directory of the base host and then use them inside the container. The way to run openstack commands is as follows:

        # ON BASE HOST OF OPENSTACK CONTROL NODE
        cd /etc/kolla/kolla-toolbox
        wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    
        docker exec -it kolla_toolbox bash
        # NOW YOU ARE INSIDE THE KOLLA_TOOLBOX CONTAINER
        (kolla-toolbox)[ansible@server1 /]$ source /var/lib/kolla/config_files/admin-openrc.sh
        (kolla-toolbox)[ansible@server1 /]$ cd /var/lib/kolla/config_files
        (kolla-toolbox)[ansible@server1 /var/lib/kolla/config_files]$ openstack image create cirros2 --disk-format qcow2 --public --container-format bare --file cirros-0.4.0-x86_64-disk.img
        +------------------+------------------------------------------------------+
        | Field            | Value                                                |
        +------------------+------------------------------------------------------+
        | checksum         | 443b7623e27ecf03dc9e01ee93f67afe                     |
        | container_format | bare                                                 |
        | created_at       | 2018-03-29T21:37:48Z                                 |
        | disk_format      | qcow2                                                |
        | file             | /v2/images/e672b536-0796-47b3-83a6-df48a5d074be/file |
        | id               | e672b536-0796-47b3-83a6-df48a5d074be                 |
        | min_disk         | 0                                                    |
        | min_ram          | 0                                                    |
        | name             | cirros2                                              |
        | owner            | 371bdb766278484bbabf868cf7325d4c                     |
        | protected        | False                                                |
        | schema           | /v2/schemas/image                                    |
        | size             | 12716032                                             |
        | status           | active                                               |
        | tags             |                                                      |
        | updated_at       | 2018-03-29T21:37:50Z                                 |
        | virtual_size     | None                                                 |
        | visibility       | public                                               |
        +------------------+------------------------------------------------------+
        (kolla-toolbox)[ansible@server1 /var/lib/kolla/config_files]$ openstack image list
        +--------------------------------------+---------+--------+
        | ID                                   | Name    | Status |
        +--------------------------------------+---------+--------+
        | e672b536-0796-47b3-83a6-df48a5d074be | cirros2 | active |
        | 57e6620e-796a-40ee-ae6e-ea1daa253b6c | cirros2 | active |
        +--------------------------------------+---------+--------+
    
    
    
  3. Failure to deploy redis with the following error:

The conditional check 'roles[instance_name].webui is defined or roles[instance_name].analytics is defined' failed.

}
2018-04-21 15:27:24,288 p=23225 u=root | Read vars_file '{{ hostvars['localhost'].config_file }}'
2018-04-21 15:27:24,289 p=23225 u=root | TASK [install_contrail : create /etc/contrail/redis] *******************************************************************************************************************************************************************
2018-04-21 15:27:24,289 p=23225 u=root | task path: /var/contrail-ansible-deployer/playbooks/roles/install_contrail/tasks/create_redis.yml:2
2018-04-21 15:27:24,379 p=23225 u=root | Read vars_file '{{ hostvars['localhost'].config_file }}'
2018-04-21 15:27:24,391 p=23225 u=root | fatal: [10.87.129.234]: FAILED! => {
    "msg": "The conditional check 'roles[instance_name].webui is defined or roles[instance_name].analytics is defined' failed. The error was: error while evaluating conditional (roles[instance_name].webui is defined or roles[instance_name].analytics is defined): 'dict object' has no attribute u'bms2'\n\nThe error appears to have been in '/var/contrail-ansible-deployer/playbooks/roles/install_contrail/tasks/create_redis.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: create /etc/contrail/redis\n ^ here\n"
}
2018-04-21 15:27:24,491 p=23225 u=root | Read vars_file '{{ hostvars['localhost'].config_file }}'
2018-04-21 15:27:24,498 p=23225 u=root | fatal: [10.87.140.154]: FAILED! => {
    "msg": "The conditional check 'roles[instance_name].webui is defined or roles[instance_name].analytics is defined' failed. The error was: error while evaluating conditional (roles[instance_name].webui is defined or roles[instance_name].analytics is defined): 'dict object' has no attribute u'bms3'\n\nThe error appears to have been in '/var/contrail-ansible-deployer/playbooks/roles/install_contrail/tasks/create_redis.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: create /etc/contrail/redis\n ^ here\n"
}

Resolution: This is caused by code incompatible with 2.5.1.0 version of Ansible. Please stick to ansible-2.4.2.0 to avoid this issue for now until we fix the code to work with the latest version of Ansible.