== Boot vm in compute node == cd /var/lib/nova/instances// /usr/libexec/qemu-kvm -m 1024 -hda /tmp/systemrescue-8.03-amd64.iso -hdb disk -display none -serial stdio kernel add console=ttyS0 == Utilização == config-cloud (cloud-init) setando password (senha) na instancia #cloud-config hostname: teste fqdn: teste.meudominio.br ssh_pwauth: False password: cloudsenha chpasswd: {expire: False} package_upgrade: true packages: - httpd * http://cloudinit.readthedocs.io/en/latest/topics/examples.html * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cloudinit-update-vm Outras informações: https://www.ic.unicamp.br/~william/howto/cloud-init.html == Script Iniciando uma instancia == #!/bin/bash KEY="SSH Key Name" BOOTIMG="IMAGE UUID" ZONE="NL1" FLAVOR="Standard 1" source ~/computerc for RUN in {1..20}; do echo "Creating VM ${RUN}"" VMUUID=$(nova boot \ --image "${BOOTIMG}" \ --flavor "${FLAVOR}" \ --availability-zone "${ZONE}" \ --nic net-id=00000000-0000-0000-0000-000000000000 \ --key-name "${KEY}" \ --user-data user_data.file \ "VPS-${RUN}-${ZONE}" | awk '/id/ {print $4}' | head -n 1); until [[ "$(nova show ${VMUUID} | awk '/status/ {print $4}')" == "ACTIVE" ]]; do : done echo "VM ${RUN} (${VMUUID}) is active." done == Vagrant Openstack (vagrant file cloud.ic) == Apos instalado o vagrant $ vagrant plugin install vagrant-openstack-provider $ vim $HOME/Vagrantfile # Inicio :: Vagrantfile :: require 'vagrant-openstack-provider' Vagrant.configure("2") do |config| config.ssh.username = 'ubuntu' config.vm.provider :openstack do |os| os.server_name = 'openwhisk' os.identity_api_version = '3' os.openstack_auth_url = 'http://cloud.ic.unicamp.br:5000/v3' os.project_name = 'OPENWHISK' os.domain_name = 'default' os.region = 'RegionOne' os.username = 'william' os.password = 'suasenha123' os.tenant_name = 'OPENWHISK' os.flavor = 'm1.small.cpu-shared' os.image = 'Ubuntu-xenial-server-amd64-16.04-LTS' os.networks = 'private' os.floating_ip_pool = 'public' end end # Fim :: Vagrantfile :: $ vagrant up $ vagrant ssh Se precisar do debug do Vagrant para Openstack set a variavel a seguir: $ export VAGRANT_OPENSTACK_LOG=debug * Outras informações: https://github.com/ggiamarchi/vagrant-openstack-provider Usando Vagrant com OpenStack: https://blog.scottlowe.org/2015/09/28/using-vagrant-with-openstack/ == Administração == Habilitando permissão para um projeto ter acesso a uma imagem private. # glance image-list # glance image-show 16d19c89-c18c-4f0b-b44d-7d2dd535610 +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | bc62ad193b085680952edfa7face0f23 | | container_format | bare | | created_at | 2017-12-08T15:36:58Z | | disk_format | qcow2 | | id | 16d19c89-c18c-4f0b-b44d-7d2dd535610 | | min_disk | 0 | | min_ram | 0 | | name | WebDev-CentOS7 | | owner | d231419875196519513741397156ad45 | | protected | True | | size | 1361182720 | | status | active | | tags | [] | | updated_at | 2017-12-08T15:49:15Z | | virtual_size | None | | visibility | private | +------------------+--------------------------------------+ # glance image-update --visibility shared 16d19c89-c18c-4f0b-b44d-7d2dd535610 # glance member-create 16d19c89-c18c-4f0b-b44d-7d2dd535610b 752972547896627398451785cda23414 # glance member-list --image-id 16d19c89-c18c-4f0b-b44d-7d2dd535610b +--------------------------------------+----------------------------------+----------+ | Image ID | Member ID | Status | +--------------------------------------+----------------------------------+----------+ | 16d19c89-c18c-4f0b-b44d-7d2dd535610b | d231419875196519513741397156ad45 | accepted | | 16d19c89-c18c-4f0b-b44d-7d2dd535610b | 752972547896627398451785cda23414 | pending | | 16d19c89-c18c-4f0b-b44d-7d2dd535610b | a987d7a56d78a697da876da8756da5c1 | accepted | | 16d19c89-c18c-4f0b-b44d-7d2dd535610b | aad897ad87a98d6ad968a87d58a5dad8 | accepted | | 16d19c89-c18c-4f0b-b44d-7d2dd535610b | 4ad987ad987ad6598ad85ad654ad63a0 | accepted | +--------------------------------------+----------------------------------+----------+ # glance member-update 16d19c89-c18c-4f0b-b44d-7d2dd535610b 752972547896627398451785cda23414 accepted Imagem set propriedades de hardware a ser utilizado. $ openstack image set --property hw_disk_bus='ide' image_name_or_id == Outros == Quick Simple OpenStack + Hyper-V installation – YouTube. https://www.youtube.com/watch?v=TsESYPz3uGo Mudando CIDR OpenStack. https://cloudblog.switch.ch/2015/09/22/hack-neutron-to-add-more-ip-addresses-to-an-existing-subnet/ Desabilitando Boot de Instancia no Dashboard por Volume. ## ADMSIS #LAUNCH_INSTANCE_DEFAULTS = { # 'config_drive': False, # 'enable_scheduler_hints': True # 'disable_image': False, # 'disable_instance_snapshot': False, # 'disable_volume': True, # 'disable_volume_snapshot': False, #} LAUNCH_INSTANCE_DEFAULTS = { 'config_drive': False, 'create_volume': False, 'disable_image': False, 'disable_instance_snapshot': False, 'disable_volume': True, 'disable_volume_snapshot': True, } Referencia: https://ask.openstack.org/en/question/106169/disable-create-new-volume-from-horizon/ == Redundância, master e slave OpenStack == * http://behindtheracks.com/openstack-high- * https://docs.openstack.org/ha- == Floating IP == Associar um determinado IP para um projeto: openstack floating ip create --floating-ip-address --project == Problema cinder reserved == https://ask.openstack.org/en/question/66918/how-to-delete-volume-with-available-status-and-attached-to/ * openstack volume delete aff365a2-49db-49a5-9e41-57e2fcac2f8c --purge * openstack volume delete aff365a2-49db-49a5-9e41-57e2fcac2f8c --force * cinder reset-state --state available --attach-status detached 0826d2bf-4150-4d51-926a-f0e10d814b90 * cinder reset-state --state available --attach-status detached aff365a2-49db-49a5-9e41-57e2fcac2f8c * cinder reset-state --state available --attach-status detached 7dba9ead-9554-4118-9481-d89907967934 * mysql> update volumes set attach_status=’detached’,status=’available’ where id ='’; * mysql> update volumes set deleted=1,status=deleted,deleted_at=now(),updated_at=now() where deleted=0 and id='7dba9ead-9554-4118-9481-d89907967934'; * lvremove cinder-volumes/volume-7dba9ead-9554-4118-9481-d89907967934 Mais informações: https://www.openstack.org/ ou https://docs.openstack.org/queens/