--- # Configure another compute node for Fedora Cloud - authorized_key: user=root key="{{ lookup('file', files + '/fedora-cloud/fed09-ssh-key.pub') }}" - template: src={{ files }}/fedora-cloud/hosts dest=/etc/hosts owner=root mode=0644 - name: Enable nested virtualization copy: content="options kvm_intel nested=1" dest=/etc/modprobe.d/nested_virt.conf owner=root group=root mode=0644 - lineinfile: dest=/etc/sysconfig/network-scripts/ifcfg-eth1 regexp="^ONBOOT=" line="ONBOOT=yes" notify: - restart network - lineinfile: dest=/etc/sysconfig/network-scripts/ifcfg-eth1 regexp="^NETMASK=" line="NETMASK=255.255.255.0" notify: - restart network - lineinfile: dest=/etc/sysconfig/network-scripts/ifcfg-eth1 regexp="^IPADDR=" line="IPADDR={{compute_private_ip}}" notify: - restart network - lineinfile: dest=/etc/sysconfig/network-scripts/ifcfg-eth1 regexp="BOOTPROTO=" line="BOOTPROTO=none" notify: - restart network - meta: flush_handlers - name: copy RHOS repo file copy: src=rhos-5.repo dest=/etc/yum.repos.d/rhos-5.repo owner=root group=root mode=0644 - yum: state=present pkg=openstack-nova-common - name: create logical volume for ephemeral storage lvol: vg=vg_guests lv=nova size=100%FREE - filesystem: fstype=ext4 dev=/dev/mapper/vg_guests-nova - mount: name=/var/lib/nova src=/dev/mapper/vg_guests-nova fstype=ext4 state=mounted - name: Create logical volume for Swift lvol: vg=vg_server lv=swift_store size=100g - name: Create FS on Swift storage filesystem: fstype=ext4 dev=/dev/vg_server/swift_store - file: path=/var/lib/nova/{{item}} owner=nova group=nova mode=0755 state=directory with_items: - buckets - images - instances - keys - networks - tmp - meta: flush_handlers # http://docs.openstack.org/icehouse/install-guide/install/yum/content/nova-compute.html - name: install the Compute packages necessary for the controller node. action: yum state=present pkg={{ item }} with_items: - openstack-nova-compute - python-novaclient - openstack-utils - openstack-selinux - name: add ssl cert for keystone copy: src={{ private }}/files/openstack/fedorainfracloud.org.digicert.pem dest=/etc/pki/tls/certs/fedorainfracloud.org.digicert.pem mode=644 owner=root group=root - name: Set up db connection to controller ini_file: dest=/etc/nova/nova.conf section=database option=connection value=mysql://nova:{{NOVA_DBPASS}}@{{controller_private_ip}}/nova notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=auth_strategy value=keystone notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=auth_uri value=https://{{controller_publicname}}:5000 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=auth_host value={{controller_publicname}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=auth_protocol value=https notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=auth_port value=35357 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=cafile value=/etc/pki/tls/certs/fedorainfracloud.org.digicert.pem notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=admin_user value=nova notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=admin_tenant_name value=services notify: - restart openstack-nova-compute - name: set admin_password ini_file: dest=/etc/nova/nova.conf section=keystone_authtoken option=admin_password value={{NOVA_PASS}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rpc_backend value=nova.openstack.common.rpc.impl_kombu notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_host value={{controller_private_ip}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_hosts value={{controller_private_ip}}:5672 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_userid value=amqp_user notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_password value={{ CONFIG_AMQP_AUTH_PASSWORD }} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_port value=5672 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=rabbit_use_ssl value=False notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=my_ip value={{compute_private_ip}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=vnc_enabled value=True notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=vncserver_listen value=0.0.0.0 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=vncserver_proxyclient_address value={{compute_private_ip}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=novncproxy_base_url value=https://{{controller_publicname}}:6080/vnc_auto.html notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=glance_host value={{controller_publicname}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=glance_protocol value=https notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=glance_api_servers value=https://{{ controller_publicname }}:9292 notify: - restart openstack-nova-compute - name: set up storage for ephemeral disks ini_file: dest=/etc/nova/nova.conf section=libvirt option=images_type state=absent notify: - restart openstack-nova-compute - service: name=libvirtd state=started enabled=yes - service: name=messagebus state=started - service: name=openstack-nova-compute state=started enabled=yes - service: name=neutron-openvswitch-agent state=started enabled=yes # http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-compute-node.html - sysctl: name=net.ipv4.conf.all.rp_filter value=0 state=present sysctl_set=yes reload=yes - sysctl: name=net.ipv4.conf.default.rp_filter value=0 state=present sysctl_set=yes reload=yes - name: install the Networking components action: yum state=present pkg={{ item }} with_items: - openstack-neutron-ml2 - openstack-neutron-openvswitch - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=auth_strategy value=keystone notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=auth_uri value=https://{{controller_publicname}}:5000 notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=auth_host value={{controller_publicname}} notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=auth_protocol value=https notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=auth_port value=35357 notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=cafile value=/etc/pki/tls/certs/fedorainfracloud.org.digicert.pem notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=admin_user value=neutron notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=admin_tenant_name value=services notify: - restart neutron-openvswitch-agent - name: set admin_password ini_file: dest=/etc/neutron/neutron.conf section=keystone_authtoken option=admin_password value={{NEUTRON_PASS}} notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rpc_backend value=neutron.openstack.common.rpc.impl_kombu notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rabbit_host value={{controller_private_ip}} notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rabbit_hosts value={{controller_private_ip}}:5672 notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rabbit_userid value=amqp_user notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rabbit_password value={{ CONFIG_AMQP_AUTH_PASSWORD }} notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=rabbit_port value=5672 notify: - restart neutron-openvswitch-agent # uncomment if you want to debug compute instance #- ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=verbose value=True # notify: # - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=core_plugin value=neutron.plugins.ml2.plugin.Ml2Plugin notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/neutron.conf section=DEFAULT option=service_plugins value=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ml2 option=type_drivers value=local,flat,gre notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ml2 option=tenant_network_types value=gre notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ml2 option=mechanism_drivers value=openvswitch notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ml2_type_gre option=tunnel_id_ranges value=1:1000 notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ovs option=local_ip value={{compute_private_ip}} notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ovs option=tunnel_type value=gre notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ovs option=tunnel_types value=gre notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=agent option=tunnel_types value=gre notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=ovs option=enable_tunneling value=True notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=securitygroup option=firewall_driver value=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver notify: - restart neutron-openvswitch-agent - ini_file: dest=/etc/neutron/plugins/ml2/ml2_conf.ini section=securitygroup option=enable_security_group value=True notify: - restart neutron-openvswitch-agent # WORKAROUND https://ask.openstack.org/en/question/28734/instance-failed-to-spawn-you-must-call-aug-init-first-to-initialize-augeas/ - ini_file: dest=/usr/lib/systemd/system/neutron-openvswitch-agent.service section=Service option=ExecStart value="/usr/bin/neutron-openvswitch-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini --log-file /var/log/neutron/openvswitch-agent.log" notify: - restart neutron-openvswitch-agent - service: name=openvswitch state=started enabled=yes - command: ovs-vsctl --may-exist add-br br-int - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=network_api_class value=nova.network.neutronv2.api.API notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_url value=https://{{controller_publicname}}:9696 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_auth_strategy value=keystone notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_admin_tenant_name value=services notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_admin_username value=neutron notify: - restart openstack-nova-compute - name: set neutron_admin_password ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_admin_password value={{NEUTRON_PASS}} notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=neutron_admin_auth_url value=https://{{controller_publicname}}:35357/v2.0 notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=linuxnet_interface_driver value=nova.network.linux_net.LinuxOVSInterfaceDriver notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=firewall_driver value=nova.virt.firewall.NoopFirewallDriver notify: - restart openstack-nova-compute - ini_file: dest=/etc/nova/nova.conf section=DEFAULT option=security_group_api value=neutron notify: - restart openstack-nova-compute - file: src=/etc/neutron/plugins/ml2/ml2_conf.ini dest=/etc/neutron/plugin.ini state=link notify: - restart openstack-nova-compute - name: Set shell to nova user to allow cold migrations user: name=nova shell=/bin/bash - name: SSH authorized key for nova user authorized_key: user=nova key="{{fed_cloud09_nova_public_key}}" - name: SSH public key for nova user template: src={{ files }}/fedora-cloud/fed_cloud09_nova_public_key dest=/var/lib/nova/.ssh/id_rsa.pub owner=nova group=nova - name: Deploy private SSH key copy: src={{ private }}/files/openstack/fed-cloud09-nova.key dest=/var/lib/nova/.ssh/id_rsa mode=600 owner=nova group=nova - copy: src={{files}}/fedora-cloud/nova-ssh-config dest=/var/lib/nova/.ssh/config owner=nova group=nova mode=640 # This needs to be run after controller reprovision #FIXME #- name: "restart neutron-openvswitch-agent" # service: name=neutron-openvswitch-agent state=restarted #- name: "restart openstack-nova-compute" # service: name=openstack-nova-compute state=restarted