SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Dalton Cézane
About
Primeiros passos com Openstack
Dalton Cézane Oct 8 · 15 min read
Introdução
O Openstack é uma plataforma de código aberto, criada pela NASA e pela
Rackspace Hosting em 2010, para implantação e gerenciamento de serviços de
computação em nuvem. É muito utilizada com o paradigma de infraestrutura
como serviço (Infrastructure as a Service — IaaS) para prover recursos de
processamento, rede e armazenamento para variados tipos de aplicação.
Open in app
Os principais componentes do Openstack estão listados abaixo:
Nova — gerencia máquinas virtuais para realização de tarefas de computação
(computing).
Swift — gerencia o armazenamento de arquivos e objetos, possibilitando
referenciá-los por identificadores únicos ao invés dos caminhos completos
(paths).
Cinder — gerencia o armazenamento persistente (espaço em disco), em blocos,
para as máquinas virtuais.
Neutron — gerencia redes, subredes e os componentes necessários para
comunicação entre elas.
Horizon — painel de controle que possibilita gerenciar os componentes da
nuvem. Fornece uma API para que desenvolvedores possam interagir com todos
os componentes.
Keystone — gerencia o serviço de identidades, realizando a autenticação de
usuários e controlando acesso a recursos baseado em permissões.
Glance — gerencia as imagens de sistemas operacionais utilizadas pelas máquinas
virtuais.
Ceilometer — gerencia o uso dos recursos da nuvem, fornecendo serviços de
telemetria para os usuários.
Heat — gerencia a orquestração dos recursos para os serviços de nuvem.
Alguma comunidades e empresas mantêm diferentes versões do Openstack. Eu
tentei usar algumas, listadas abaixo:
Devstack — Simples de instalar e muito utilizada em ambiente de
desenvolvimento, para quem desenvolve funcionalidades para os componentes da
plataforma.
Kolla — Disponibiliza os componentes do Openstack em contêineres. Consegui
instalar, mas desisti de utilizar devido à documentação (falta dela!).
Packstack — Pacote de instalação do Openstack para Red Hat e CentOS. Como
utilizo Ubuntu, não cheguei a instalar essa versão.
Microstack —Mantido pela Canonical, possibilita a instalação e configuração do
Openstack no Ubuntu, de forma simples. Embora tenha encontrado alguns
problemas com esta versão, é a que possibilitou progresso no uso do Openstack.
Senti falta de uma documentação bem organizada com fundamentos da
plataforma e um tutorial de uso básico. Aparentemente, esse tipo de conteúdo
não é disponibilizado de forma gratuita.
Uso básico do Microstack
Para instalar o Microstack, você pode utilizar a versão beta. Se estiver usando o
Ubuntu 18.04, utilize o seguinte comando:
sudo snap install microstack --classic --beta
Se estiver usando Ubuntu 20.04, use a versão edge, pois tivemos problema com a
versão classic:
sudo snap install microstack --devmode --edge
Para configurar e iniciar o Microstack, execute:
sudo microstack.init --auto
Uma vez que o Microstack foi corretamente configurado e inicializado, você pode
acessar o painel de controle (Horizon) no endereço http://10.20.20.1/ , com as
seguintes credenciais:
Nome de usuário: admin
Senha: keystone
Como encontrei um problema no login em minha máquina, segui utilizando os
comandos do Openstack via CLI (Command-line Interface). Por isso, as operações
aqui estão descritas com os respectivos comandos. Entretanto, o Openstack
disponibiliza uma API REST para realizar as operações em seus componentes.
O Microstack já vem com uma imagem do Cirros registrada no Glance. Para exibir
as imagens registradas, use o comando abaixo:
microstack.openstack image list
+--------------------------------------+---------------+-------
-+
| ID | Name | Status
|
+--------------------------------------+---------------+-------
-+
| dee7c0d4-834c-4c0e-a389-7306141e9870 | cirros | active
|
| 03a49346-b5d9-4955-ba5f-0579465e29db | ubuntu_bionic | active
|
+--------------------------------------+---------------+-------
-+
Como vemos, além da imagem do Cirros, com nome cirros, temos uma do Ubuntu
18.04, com nome ubuntu_bionic. Esta imagem do Ubuntu Bionic foi obtida com o
seguinte comando:
wget https://cloud-images.ubuntu.com/bionic/current/bionic-
server-cloudimg-amd64.img
Este repositório (cloud-images.ubuntu.com) mantém imagens do Ubuntu já
preparadas para o ambiente de nuvem. Para registrar a imagem no Microstack,
utilize este comando (o último parâmetro será o nome da imagem):
microstack.openstack image create --file bionic-server-
cloudimg-amd64.img --public --container-format=bare disk-
format=qcow2 ubuntu_bionic
A configuração automática do Microstack já fornece duas redes criadas. Para
listá-las, execute este comando:
microstack.openstack network list
+--------------------+----------+-----------------------+
| ID | Name | Subnets |
+--------------------+----------+-----------------------+
| 541f68e4-e7a5-436e | external | 2d91d661-9c10-463b- |
| 986d190d-f657-4463 | test | 3682f140-0774-4ecd- |
+--------------------+----------+-----------------------+
Se precisar ver detalhes de uma rede específica, utilize o comando show e informe
o nome ou ID da rede:
microstack.openstack network show external
+---------------------------+----------------------------------
----+
| Field | Value
|
+---------------------------+----------------------------------
----+
| admin_state_up | UP
|
| availability_zone_hints |
|
| availability_zones | nova
|
| created_at | 2020-09-08T18:18:59Z
|
| description |
|
| dns_domain | None
|
| id | 541f68e4-e7a5-436e-
982b-5a464a215997
|
| ipv4_address_scope | None
|
| ipv6_address_scope | None
|
| is_default | False
|
| is_vlan_transparent | None
|
| location | Munch({'cloud': '',
'region_name': '', 'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| mtu | 1500
|
| name | external
|
| port_security_enabled | True
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| provider:network_type | flat
|
| provider:physical_network | physnet1
|
| provider:segmentation_id | None
|
| qos_policy_id | None
|
| revision_number | 2
|
| router:external | External
|
| segments | None
|
| shared | False
|
| status | ACTIVE
|
| subnets | 2d91d661-9c10-463b-
b745-07e33660d8a1
|
| tags |
|
| updated_at | 2020-09-08T18:19:04Z
|
+---------------------------+----------------------------------
----+
As diferentes configurações para criação de máquinas virtuais são chamadas de
flavors. Para listar as configurações (flavors) disponíveis, utilize o seguinte
comando:
microstack.openstack flavor list
+----+-----------+-------+------+-----------+-------+----------
-+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public
|
+----+-----------+-------+------+-----------+-------+----------
-+
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True
|
| 2 | m1.small | 2048 | 20 | 0 | 1 | True
|
| 3 | m1.medium | 4096 | 20 | 0 | 2 | True
|
| 4 | m1.large | 8192 | 20 | 0 | 4 | True
|
| 5 | m1.xlarge | 16384 | 20 | 0 | 8 | True
|
+----+-----------+-------+------+-----------+-------+----------
-+
Se precisar criar configurações diferentes, basta criar novos flavors com o
seguinte comando (o último parâmetro é o nome do flavor):
microstack.openstack flavor create --ram 4096 --vcpus 2 --disk
40 m2.medium
+----------------------------+---------------------------------
----+
| Field | Value
|
+----------------------------+---------------------------------
----+
| OS-FLV-DISABLED:disabled | False
|
| OS-FLV-EXT-DATA:ephemeral | 0
|
| disk | 40
|
| id | 7ccbd0a0-9977-48bc-
9754-5cf1113a44ce |
| name | m2.medium
|
| os-flavor-access:is_public | True
|
| properties |
|
| ram | 4096
|
| rxtx_factor | 1.0
|
| swap |
|
| vcpus | 2
|
+----------------------------+---------------------------------
----+
O Microstack fornece um comando para criar uma máquina virtual de forma bem
simples. Por exemplo, para criar uma máquina virtual utilizando a imagem do
Ubuntu Bionic (ubuntu_bionic) e o flavor criado (m2.medium), use o comando
abaixo:
microstack.launch ubuntu_bionic --flavor m2.medium --name
ubuntu_test
Launching server ...
Allocating floating ip ...
Server ubuntu_test launched! (status is BUILD)
Access it with `ssh -i $HOME/.ssh/id_microstack
ubuntu@10.20.20.36`
You can also visit the OpenStack dashboard at
http://10.20.20.1:80
Por padrão, o Microstack armazena as chaves para acesso remoto às máquinas no
diretório $HOME/.ssh/ . Para listar as chaves registradas no Openstack, utilize o
comando abaixo:
microstack.openstack keypair list
+------------+-------------------------------------------------
+
| Name | Fingerprint
|
+------------+-------------------------------------------------
+
| microstack | c3:45:c3:06:14:33:17:58:8e:13:f7:ca:18:51:47:b9
|
+------------+-------------------------------------------------
+
Para listar as máquinas virtuais criadas, use o seguinte comando:
microstack.openstack server list
+----------+-----------+---------+------------+-------+--------
---+
| ID | Name | Status | Networks | Image | Flavor
|
+----------+-----------+---------+------------+-------+--------
---+
| dce041fc | ubuntu_test | ACTIVE | test=192.168.222.192,
10.20.20.36 | ubuntu_bionic | m2.medium |
| 058067fc | cirro_test | SHUTOFF | test=192.168.222.139,
10.20.20.93 | cirros | m1.tiny |
+----------+-----------+---------+------------+-------+--------
---+
Podemos ver que a máquina criada, ubuntu_test , está ativa. Ela possui o IP
192.168.222.192 da rede test , e o IP flutuante 10.20.20.36 da rede external .
Como listado ao término da criação da máquina virtual, para acessá-la, utilize o
seguinte comando (usuário ubuntu e chave microstack ):
ssh -i $HOME/.ssh/id_microstack ubuntu@10.20.20.36
The authenticity of host '10.20.20.36 (10.20.20.36)' can't be
established.
ECDSA key fingerprint is SHA256:4O1tM/dXBUAJh
/R4/VioAkTcRxES3QzA2RjWilKHCGc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.20.20.36' (ECDSA) to the list of
known hosts.
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic
x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu Oct 8 18:06:11 UTC 2020
System load: 0.0 Processes: 90
Usage of /: 2.6% of 38.60GB Users logged in: 0
Memory usage: 4% IP address for ens3:
192.168.222.192
Swap usage: 0%
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security.
Activate at:
https://ubuntu.com/livepatch
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in
the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo
<command>".
See "man sudo_root" for details.
ubuntu@ubuntu-test:~$
Também é possível usar o ping para verificar se a máquina virtual está acessível:
ping 10.20.20.36
PING 10.20.20.36 (10.20.20.36) 56(84) bytes of data.
64 bytes from 10.20.20.36: icmp_seq=1 ttl=63 time=2.04 ms
64 bytes from 10.20.20.36: icmp_seq=2 ttl=63 time=1.23 ms
64 bytes from 10.20.20.36: icmp_seq=3 ttl=63 time=0.544 ms
^C
--- 10.20.20.36 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.544/1.274/2.042/0.612 ms
Podemos acessar as máquinas virtuais por ping e por ssh porque, por padrão, o
grupo de segurança já foi automaticamente configurado no Microstack. Para
listar os grupos de segurança, use o comando abaixo:
microstack.openstack security group list
+----------+---------+------------------------+-----------+----
--+
| ID | Name | Description | Project
| Tags |
+----------+---------+------------------------+-----------+----
--+
| 0d719815 | default | Default security group | | []
|
| 3772dea7 | default | Default security group | 6a15fdc92 | []
|
| cdf1c322 | default | Default security group | 66c975373 | []
|
+----------+---------+------------------------+-----------+----
--+
Para listar os detalhes de um grupo de segurança específico, utilize o comando
abaixo, informando o id do grupo:
microstack.openstack security group show cdf1c322
+-----------------+--------------------------------------------
----+
| Field | Value
|
+-----------------+--------------------------------------------
----+
| created_at | 2020-09-08T18:18:50Z
|
| description | Default security group
|
| id | cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5
|
| location | Munch({'cloud': '', 'region_name': '',
'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})})
|
| name | default
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| revision_number | 3
|
| rules | created_at='2020-09-08T18:20:16Z',
direction='ingress', ethertype='IPv4', id='06927321-fb30-4e17-
b659-ab97f4e935ca', protocol='icmp',
remote_ip_prefix='0.0.0.0/0', updated_at='2020-09-08T18:20:16Z'
|
| | created_at='2020-09-08T18:18:50Z',
direction='egress', ethertype='IPv4', id='158868a8-b1a6-480c-
b171-78a697111ea5', updated_at='2020-09-08T18:18:50Z'
|
| | created_at='2020-09-08T18:18:51Z',
direction='egress', ethertype='IPv6', id='265082d7-
ea9c-4f98-9872-cf3b23bc3b28', updated_at='2020-09-08T18:18:51Z'
|
| | created_at='2020-09-08T18:18:50Z',
direction='ingress', ethertype='IPv4', id='5e9501de-888b-48ec-
9edb-fa879f162881', remote_group_id='cdf1c322-c6ff-4c1b-
8a0b-14d9755e0fa5', updated_at='2020-09-08T18:18:50Z'
|
| | created_at='2020-09-08T18:18:50Z',
direction='ingress', ethertype='IPv6', id='841d65ad-96e7-46a4-
b6da-b401b56ca8bf', remote_group_id='cdf1c322-c6ff-4c1b-
8a0b-14d9755e0fa5', updated_at='2020-09-08T18:18:50Z'
|
| | created_at='2020-09-08T18:20:18Z',
direction='ingress', ethertype='IPv4', id='a146fd79-3150-4fc9-
aa48-a3486143d5e4', port_range_max='22', port_range_min='22',
protocol='tcp', remote_ip_prefix='0.0.0.0/0',
updated_at='2020-09-08T18:20:18Z' |
| tags | []
|
| updated_at | 2020-09-08T18:20:18Z
|
+-----------------+--------------------------------------------
----+
Para listar as regras de um grupo, utilize o seguinte comando, informando o id do
grupo:
microstack.openstack security group rule list cdf1c322
+----------+------------+-----------+-----------+--------------
----+
| ID | IP Protocol| IP Range | Port Range| Remote Sec.
Group|
+----------+------------+-----------+-----------+--------------
----+
| 06927321| icmp | 0.0.0.0/0 | | None
|
| 158868a8| None | None | | None
|
| 265082d7| None | None | | None
|
| 5e9501de| None | None | | cdf1c322
|
| 841d65ad| None | None | | cdf1c322
|
| a146fd79| tcp | 0.0.0.0/0 | 22:22 | None
|
+---------+-------------+-----------+-----------+--------------
----+
Se o grupo de segurança não tivesse as regras para acesso por ping e ssh , seria
possível adicioná-las. Para exemplificar, vamos criar uma regra que permite
acessar a porta 8080 da máquina virtual a partir de qualquer IP. Use o comando
abaixo, especificando o id do grupo de segurança:
microstack.openstack security group rule create --proto tcp
--dst-port 8080 cdf1c322
+-------------------+------------------------------------------
----+
| Field | Value
|
+-------------------+------------------------------------------
----+
| created_at | 2020-10-08T18:34:03Z
|
| description |
|
| direction | ingress
|
| ether_type | IPv4
|
| id | 988b6cbc-9546-4937-9ea1-80d081e2780b
|
| location | Munch({'cloud': '', 'region_name': '',
'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| name | None
|
| port_range_max | 8080
|
| port_range_min | 8080
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| protocol | tcp
|
| remote_group_id | None
|
| remote_ip_prefix | 0.0.0.0/0
|
| revision_number | 0
|
| security_group_id | cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5
|
| tags | []
|
| updated_at | 2020-10-08T18:34:03Z
|
+-------------------+------------------------------------------
----+
Caso precise criar as regras para acesso com ping e ssh , use os comandos abaixo,
informando o id do grupo de segurança:
microstack.openstack security group rule create --proto icmp
cdf1c322
microstack.openstack security group rule create --proto tcp
--dst-port 22 cdf1c322
VMs com especificação de rede e atribuição de IP flutuante
Agora vamos criar uma máquina virtual informando todos os parâmetros, sem
usar o comando microstack.launch . Para isto, vamos criar uma rede privada,
especificando uma faixa de IPs específica. O comando abaixo cria a rede
priv_net :
microstack.openstack network create priv_net
+---------------------------+----------------------------------
----+
| Field | Value
|
+---------------------------+----------------------------------
----+
| admin_state_up | UP
|
| availability_zone_hints |
|
| availability_zones |
|
| created_at | 2020-10-08T19:14:37Z
|
| description |
|
| dns_domain | None
|
| id | ecf63d39-2e66-47cc-
b8d4-27b59b099ad9
|
| ipv4_address_scope | None
|
| ipv6_address_scope | None
|
| is_default | False
|
| is_vlan_transparent | None
|
| location | Munch({'cloud': '',
'region_name': '', 'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| mtu | 1450
|
| name | priv_net
|
| port_security_enabled | True
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| provider:network_type | geneve
|
| provider:physical_network | None
|
| provider:segmentation_id | 86
|
| qos_policy_id | None
|
| revision_number | 1
|
| router:external | Internal
|
| segments | None
|
| shared | False
|
| status | ACTIVE
|
| subnets |
|
| tags |
|
| updated_at | 2020-10-08T19:14:37Z
|
+---------------------------+----------------------------------
----+
Agora criaremos uma subrede com a faixa de IPs 10.10.10.0/24 . Utilize o
seguinte comando:
microstack.openstack subnet create priv_sub --network priv_net
--subnet-range 10.10.10.0/24
+-------------------+------------------------------------------
----+
| Field | Value
|
+-------------------+------------------------------------------
----+
| allocation_pools | 10.10.10.2-10.10.10.254
|
| cidr | 10.10.10.0/24
|
| created_at | 2020-10-08T19:19:45Z
|
| description |
|
| dns_nameservers |
|
| enable_dhcp | True
|
| gateway_ip | 10.10.10.1
|
| host_routes |
|
| id | 8694a6f8-0456-4162-869e-d5f72eebc56a
|
| ip_version | 4
|
| ipv6_address_mode | None
|
| ipv6_ra_mode | None
|
| location | Munch({'cloud': '', 'region_name': '',
'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| name | priv_sub
|
| network_id | ecf63d39-2e66-47cc-b8d4-27b59b099ad9
|
| prefix_length | None
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| revision_number | 0
|
| segment_id | None
|
| service_types |
|
| subnetpool_id | None
|
| tags |
|
| updated_at | 2020-10-08T19:19:45Z
|
+-------------------+------------------------------------------
----+
Para listar as subredes criadas, utilize o comando abaixo:
microstack.openstack subnet list
+----------+-----------------+----------+------------------+
| ID | Name | Network | Subnet |
+----------+-----------------+----------+------------------+
| 2d91d661 | external-subnet | 541f68e4 | 10.20.20.0/24 |
| 3682f140 | test-subnet | 986d190d | 192.168.222.0/24 |
| 8694a6f8 | priv_sub | ecf63d39 | 10.10.10.0/24 |
+----------+-----------------+----------+------------------+
Agora vamos criar uma máquina virtual nesta rede criada. Para isso, utilizaremos
o flavor m1.tiny , o grupo de segurança default , a imagem cirros , o id da rede
priv_net e a chave microstack . Caso queira conferir as opções de flavors, grupos
de segurança, imagens, redes e chaves, basta utilizar os comandos abaixo (se
precisar ver detalhes de alguma opção desses itens, basta trocar o list por show
e especificar o nome ou id da opção):
microstack.openstack flavor list
microstack.openstack security group list
microstack.openstack image list
microstack.openstack network list
microstack.openstack keypair list
O comando abaixo cria a máquina virtual custom_vm com as configurações
descritas acima:
microstack.openstack server create --flavor m1.tiny --security-
group cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5 --image cirros --nic
net-id=ecf63d39-2e66-47cc-b8d4-27b59b099ad9 --key-name
microstack custom_vm
+-------------------------------------+------------------------
----+
| Field | Value
|
+-------------------------------------+------------------------
----+
| OS-DCF:diskConfig | MANUAL
|
| OS-EXT-AZ:availability_zone |
|
| OS-EXT-SRV-ATTR:host | None
|
| OS-EXT-SRV-ATTR:hypervisor_hostname | None
|
| OS-EXT-SRV-ATTR:instance_name |
|
| OS-EXT-STS:power_state | NOSTATE
|
| OS-EXT-STS:task_state | scheduling
|
| OS-EXT-STS:vm_state | building
|
| OS-SRV-USG:launched_at | None
|
| OS-SRV-USG:terminated_at | None
|
| accessIPv4 |
|
| accessIPv6 |
|
| addresses |
|
| adminPass | 47gaiNsgXuZi
|
| config_drive |
|
| created | 2020-10-08T19:53:55Z
|
| flavor | m1.tiny (1)
|
| hostId |
|
| id | 221538d7-d647-4a3c-
9dfd-e558857c4b35 |
| image | cirros (dee7c0d4-834c-
4c0e-a389-7306141e9870) |
| key_name | microstack
|
| name | custom_vm
|
| progress | 0
|
| project_id |
66c97537384f4880814027af9bc4cf02 |
| properties |
|
| security_groups | name='cdf1c322-
c6ff-4c1b-8a0b-14d9755e0fa5' |
| status | BUILD
|
| updated | 2020-10-08T19:53:55Z
|
| user_id |
d8f5bba950494dd4911744cbd1dcb285|
| volumes_attached |
|
+-------------------------------------+------------------------
----+
Listando as máquinas virtuais criadas, podemos ver a custom_vm :
microstack.openstack server list
+----------+-----------+---------+------------+-------+--------
---+
| ID | Name | Status | Networks | Image | Flavor
|
| 221538d7 | custom_vm | ACTIVE | priv_net=10.10.10.144
| cirros | m1.tiny
| dce041fc | ubuntu_test | ACTIVE | test=192.168.222.192,
10.20.20.36 | ubuntu_bionic | m2.medium |
| 058067fc | cirro_test | SHUTOFF | test=192.168.222.139,
10.20.20.93 | cirros | m1.tiny |
+----------+-----------+---------+------------+-------+--------
---+
Se tentarmos acessar a máquina virtual custom_vm , por ping ou ssh , não teremos
sucesso, pois a mesma ainda não possui IP flutuante. Como visto acima, ela
possui apenas o IP 10.10.10.144 , da rede privada priv_net . Para criar um IP
flutuante, utilize o comando a seguir, especificando o nome da rede
externa/pública ( external ):
microstack.openstack floating ip create external
+---------------------+----------------------------------------
----+
| Field | Value
|
+---------------------+----------------------------------------
----+
| created_at | 2020-10-08T20:12:59Z
|
| description |
|
| dns_domain | None
|
| dns_name | None
|
| fixed_ip_address | None
|
| floating_ip_address | 10.20.20.163
|
| floating_network_id | 541f68e4-e7a5-436e-982b-5a464a215997
|
| id | 8fe822e5-6863-4116-9ff8-86748b508885
|
| location | Munch({'cloud': '', 'region_name': '',
'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| name | 10.20.20.163
|
| port_details | None
|
| port_id | None
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| qos_policy_id | None
|
| revision_number | 0
|
| router_id | None
|
| status | DOWN
|
| subnet_id | None
|
| tags | []
|
| updated_at | 2020-10-08T20:12:59Z
|
+---------------------+----------------------------------------
----+
O IP flutuante 10.20.20.163 foi criado. Para listar todos os IPs flutuantes, usamos
o comando abaixo:
microstack.openstack floating ip list
+-----------+---------------------+------------------+---------
-----------------------------+---------------------------------
-----+----------------------------------+
| ID | Floating IP Address | Fixed IP Address | Port
| Floating Network | Project
|
+-----------+---------------------+------------------+---------
-----------------------------+---------------------------------
-----+----------------------------------+
| 4b23f5b30 | 10.20.20.172 | None | None
| 541f68e4 | 66c9753738 |
| 5f14f7380 | 10.20.20.193 | 192.168.222.196 | 4c9c61bd
| 541f68e4 | 66c9753738 |
| 6fb63178b | 10.20.20.93 | 192.168.222.139 | ec1edb43
| 541f68e4 | 66c9753738 |
| 8fe822e5 | 10.20.20.163 | None | None
| 541f68e4 | 66c9753738 |
| b1c386024 | 10.20.20.36 | 192.168.222.192 | 697a22c2
| 541f68e4 | 66c9753738 |
| da5b949f | 10.20.20.92 | 10.10.10.72 | 5eff5ad8
| 541f68e4 | 66c9753738 |
+--------+---------------------+------------------+------------
--------------------------+------------------------------------
--+----------------------------------+
Podemos ver que o IP criado ainda não foi atribuído. Quando atribuímos, a
coluna Fixed IP Address exibe o IP fixo da máquina virtual à qual o IP flutuante
está associado.
Além de atribuir o IP flutuante à máquina virtual custom_vm , precisamos associar
a rede privada priv_net à rede externa external . Para isso, criaremos um
roteador e o associaremos às redes. Crie o roteador com o comando abaixo:
microstack.openstack router create router1
+-------------------------+------------------------------------
----+
| Field | Value
|
+-------------------------+------------------------------------
----+
| admin_state_up | UP
|
| availability_zone_hints |
|
| availability_zones |
|
| created_at | 2020-10-08T20:27:33Z
|
| description |
|
| distributed | False
|
| external_gateway_info | None
|
| flavor_id | None
|
| ha | False
|
| id | 819d543c-
cc2d-45d4-8696-81478d950487 |
| location | Munch({'cloud': '', 'region_name':
'', 'zone': None, 'project': Munch({'id':
'66c97537384f4880814027af9bc4cf02', 'name': 'admin',
'domain_id': None, 'domain_name': 'default'})}) |
| name | router1
|
| project_id | 66c97537384f4880814027af9bc4cf02
|
| revision_number | 1
|
| routes |
|
| status | ACTIVE
|
| tags |
|
| updated_at | 2020-10-08T20:27:33Z
|
+-------------------------+------------------------------------
----+
Associe a rede external como gateway externo do roteador router1 :
microstack.openstack router set router1 --external-gateway
external
Adicione a subrede priv_sub ao roteador router1 :
microstack.openstack router add subnet router1 priv_sub
Agora, atribuímos o IP flutuante 10.20.20.163 à máquina virtual custom_vm :
microstack.openstack server add floating ip custom_vm
10.20.20.163
Com isso, podemos acessar a máquina usando o ping :
ping 10.20.20.163
PING 10.20.20.163 (10.20.20.163) 56(84) bytes of data.
64 bytes from 10.20.20.163: icmp_seq=1 ttl=63 time=4.62 ms
64 bytes from 10.20.20.163: icmp_seq=2 ttl=63 time=0.876 ms
64 bytes from 10.20.20.163: icmp_seq=3 ttl=63 time=0.420 ms
^C
--- 10.20.20.163 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.420/1.975/4.629/1.885 ms
E podemos acessar a máquina usando ssh (com usuário cirros e chave
microstack ):
ssh -i $HOME/.ssh/id_microstack cirros@10.20.20.163
Espero que este tutorial possa simplificar o trabalho de quem esteja começando a usar o
Openstack. Qualquer sugestão de melhoria é bem vinda.
Openstack Microstack Cloud Computing Tutorial Computação Em Nuvem
About Help Legal
Get the Medium app

Mais conteúdo relacionado

Mais procurados

Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalaçãoLuís Eduardo
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLJohnes Castro
 
Guia de instalação ms windows e para o sistema
Guia de instalação ms windows e para  o  sistemaGuia de instalação ms windows e para  o  sistema
Guia de instalação ms windows e para o sistemaLucikelly Oliveira
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debianEduardo Mendes
 
Opennebula Introdução
Opennebula IntroduçãoOpennebula Introdução
Opennebula IntroduçãoLuís Eduardo
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Fabrízio Mello
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Aécio Pires
 
Virtualização usando KVM e LXC
Virtualização usando KVM e LXCVirtualização usando KVM e LXC
Virtualização usando KVM e LXCLuís Eduardo
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraAllisson Azevedo
 
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
IT security  - Fail2ban, fail2sql e googlemaps (PT Language)IT security  - Fail2ban, fail2sql e googlemaps (PT Language)
IT security - Fail2ban, fail2sql e googlemaps (PT Language)Carlos Domingues
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Fabrízio Mello
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFLuiz Arthur
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosAlexandre Almeida
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTecla Internet
 

Mais procurados (20)

Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQL
 
Namespace
NamespaceNamespace
Namespace
 
Arch Linux FGSL 2011
Arch Linux FGSL 2011Arch Linux FGSL 2011
Arch Linux FGSL 2011
 
Guia de instalação ms windows e para o sistema
Guia de instalação ms windows e para  o  sistemaGuia de instalação ms windows e para  o  sistema
Guia de instalação ms windows e para o sistema
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debian
 
Opennebula Introdução
Opennebula IntroduçãoOpennebula Introdução
Opennebula Introdução
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
Virtualização usando KVM e LXC
Virtualização usando KVM e LXCVirtualização usando KVM e LXC
Virtualização usando KVM e LXC
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto Fedora
 
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
IT security  - Fail2ban, fail2sql e googlemaps (PT Language)IT security  - Fail2ban, fail2sql e googlemaps (PT Language)
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
 
Firewall linux virtual para windows
Firewall linux virtual para windowsFirewall linux virtual para windows
Firewall linux virtual para windows
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PF
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos Linux
 

Semelhante a Primeiros passos com Openstack

Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Marcelo Dieder
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppetpericles_junior
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseDouglas Paiva de Sousa
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Cisco Packet Tracer
Cisco Packet TracerCisco Packet Tracer
Cisco Packet Tracermaykon-26
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...Dhion C. Hedlund
 
Project HA
Project HAProject HA
Project HAKarpv
 
Apostila packet tracer 5.3
Apostila packet tracer 5.3Apostila packet tracer 5.3
Apostila packet tracer 5.3Jakson Silva
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições LinuxMauro Tapajós
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECLPHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECLErick Belluci Tedeschi
 
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...GBanin
 

Semelhante a Primeiros passos com Openstack (20)

Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013Apresentação Openstack - FISL 2013
Apresentação Openstack - FISL 2013
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppet
 
Oracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & DatabaseOracle 18c Instalação Grid Infrastructure & Database
Oracle 18c Instalação Grid Infrastructure & Database
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
Proteus anacom
Proteus anacomProteus anacom
Proteus anacom
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Cisco Packet Tracer
Cisco Packet TracerCisco Packet Tracer
Cisco Packet Tracer
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...
 
Project HA
Project HAProject HA
Project HA
 
Apostila packet tracer 5.3
Apostila packet tracer 5.3Apostila packet tracer 5.3
Apostila packet tracer 5.3
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições Linux
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECLPHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
 
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
 

Mais de Dalton Valadares

Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentPerformance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentDalton Valadares
 
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...Dalton Valadares
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Dalton Valadares
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Dalton Valadares
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Dalton Valadares
 
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Dalton Valadares
 
Internet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryInternet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryDalton Valadares
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialDalton Valadares
 
Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Dalton Valadares
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaDalton Valadares
 
Apresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UAApresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UADalton Valadares
 
Modelo de segurança OPC UA
Modelo de segurança OPC UAModelo de segurança OPC UA
Modelo de segurança OPC UADalton Valadares
 
Introdução à Gestão de projetos
Introdução à Gestão de projetosIntrodução à Gestão de projetos
Introdução à Gestão de projetosDalton Valadares
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaDalton Valadares
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 
Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...Dalton Valadares
 

Mais de Dalton Valadares (20)

Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentPerformance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
 
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0
 
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
 
Internet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryInternet das Coisas com Edgex Foundry
Internet das Coisas com Edgex Foundry
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
 
Apresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UAApresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UA
 
Modelo de segurança OPC UA
Modelo de segurança OPC UAModelo de segurança OPC UA
Modelo de segurança OPC UA
 
Introdução à Gestão de projetos
Introdução à Gestão de projetosIntrodução à Gestão de projetos
Introdução à Gestão de projetos
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and Wilma
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Programação C - Aula 3
Programação C - Aula 3Programação C - Aula 3
Programação C - Aula 3
 
Programação C - Aula 4
Programação C - Aula 4Programação C - Aula 4
Programação C - Aula 4
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...
 

Primeiros passos com Openstack

  • 1. Dalton Cézane About Primeiros passos com Openstack Dalton Cézane Oct 8 · 15 min read Introdução O Openstack é uma plataforma de código aberto, criada pela NASA e pela Rackspace Hosting em 2010, para implantação e gerenciamento de serviços de computação em nuvem. É muito utilizada com o paradigma de infraestrutura como serviço (Infrastructure as a Service — IaaS) para prover recursos de processamento, rede e armazenamento para variados tipos de aplicação. Open in app
  • 2. Os principais componentes do Openstack estão listados abaixo: Nova — gerencia máquinas virtuais para realização de tarefas de computação (computing). Swift — gerencia o armazenamento de arquivos e objetos, possibilitando referenciá-los por identificadores únicos ao invés dos caminhos completos (paths). Cinder — gerencia o armazenamento persistente (espaço em disco), em blocos, para as máquinas virtuais. Neutron — gerencia redes, subredes e os componentes necessários para comunicação entre elas. Horizon — painel de controle que possibilita gerenciar os componentes da nuvem. Fornece uma API para que desenvolvedores possam interagir com todos os componentes. Keystone — gerencia o serviço de identidades, realizando a autenticação de usuários e controlando acesso a recursos baseado em permissões. Glance — gerencia as imagens de sistemas operacionais utilizadas pelas máquinas virtuais. Ceilometer — gerencia o uso dos recursos da nuvem, fornecendo serviços de telemetria para os usuários. Heat — gerencia a orquestração dos recursos para os serviços de nuvem. Alguma comunidades e empresas mantêm diferentes versões do Openstack. Eu tentei usar algumas, listadas abaixo: Devstack — Simples de instalar e muito utilizada em ambiente de desenvolvimento, para quem desenvolve funcionalidades para os componentes da plataforma.
  • 3. Kolla — Disponibiliza os componentes do Openstack em contêineres. Consegui instalar, mas desisti de utilizar devido à documentação (falta dela!). Packstack — Pacote de instalação do Openstack para Red Hat e CentOS. Como utilizo Ubuntu, não cheguei a instalar essa versão. Microstack —Mantido pela Canonical, possibilita a instalação e configuração do Openstack no Ubuntu, de forma simples. Embora tenha encontrado alguns problemas com esta versão, é a que possibilitou progresso no uso do Openstack. Senti falta de uma documentação bem organizada com fundamentos da plataforma e um tutorial de uso básico. Aparentemente, esse tipo de conteúdo não é disponibilizado de forma gratuita. Uso básico do Microstack Para instalar o Microstack, você pode utilizar a versão beta. Se estiver usando o Ubuntu 18.04, utilize o seguinte comando: sudo snap install microstack --classic --beta Se estiver usando Ubuntu 20.04, use a versão edge, pois tivemos problema com a versão classic: sudo snap install microstack --devmode --edge Para configurar e iniciar o Microstack, execute: sudo microstack.init --auto Uma vez que o Microstack foi corretamente configurado e inicializado, você pode acessar o painel de controle (Horizon) no endereço http://10.20.20.1/ , com as
  • 4. seguintes credenciais: Nome de usuário: admin Senha: keystone Como encontrei um problema no login em minha máquina, segui utilizando os comandos do Openstack via CLI (Command-line Interface). Por isso, as operações aqui estão descritas com os respectivos comandos. Entretanto, o Openstack disponibiliza uma API REST para realizar as operações em seus componentes. O Microstack já vem com uma imagem do Cirros registrada no Glance. Para exibir as imagens registradas, use o comando abaixo: microstack.openstack image list +--------------------------------------+---------------+------- -+ | ID | Name | Status | +--------------------------------------+---------------+------- -+ | dee7c0d4-834c-4c0e-a389-7306141e9870 | cirros | active | | 03a49346-b5d9-4955-ba5f-0579465e29db | ubuntu_bionic | active | +--------------------------------------+---------------+------- -+ Como vemos, além da imagem do Cirros, com nome cirros, temos uma do Ubuntu 18.04, com nome ubuntu_bionic. Esta imagem do Ubuntu Bionic foi obtida com o seguinte comando: wget https://cloud-images.ubuntu.com/bionic/current/bionic- server-cloudimg-amd64.img Este repositório (cloud-images.ubuntu.com) mantém imagens do Ubuntu já preparadas para o ambiente de nuvem. Para registrar a imagem no Microstack,
  • 5. utilize este comando (o último parâmetro será o nome da imagem): microstack.openstack image create --file bionic-server- cloudimg-amd64.img --public --container-format=bare disk- format=qcow2 ubuntu_bionic A configuração automática do Microstack já fornece duas redes criadas. Para listá-las, execute este comando: microstack.openstack network list +--------------------+----------+-----------------------+ | ID | Name | Subnets | +--------------------+----------+-----------------------+ | 541f68e4-e7a5-436e | external | 2d91d661-9c10-463b- | | 986d190d-f657-4463 | test | 3682f140-0774-4ecd- | +--------------------+----------+-----------------------+ Se precisar ver detalhes de uma rede específica, utilize o comando show e informe o nome ou ID da rede: microstack.openstack network show external +---------------------------+---------------------------------- ----+ | Field | Value | +---------------------------+---------------------------------- ----+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | nova | | created_at | 2020-09-08T18:18:59Z | | description | | | dns_domain | None | | id | 541f68e4-e7a5-436e- 982b-5a464a215997
  • 6. | | ipv4_address_scope | None | | ipv6_address_scope | None | | is_default | False | | is_vlan_transparent | None | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | mtu | 1500 | | name | external | | port_security_enabled | True | | project_id | 66c97537384f4880814027af9bc4cf02 | | provider:network_type | flat | | provider:physical_network | physnet1 | | provider:segmentation_id | None | | qos_policy_id | None | | revision_number | 2 | | router:external | External | | segments | None | | shared | False | | status | ACTIVE | | subnets | 2d91d661-9c10-463b- b745-07e33660d8a1 | | tags | | | updated_at | 2020-09-08T18:19:04Z | +---------------------------+---------------------------------- ----+ As diferentes configurações para criação de máquinas virtuais são chamadas de
  • 7. flavors. Para listar as configurações (flavors) disponíveis, utilize o seguinte comando: microstack.openstack flavor list +----+-----------+-------+------+-----------+-------+---------- -+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+---------- -+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 20 | 0 | 2 | True | | 4 | m1.large | 8192 | 20 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 20 | 0 | 8 | True | +----+-----------+-------+------+-----------+-------+---------- -+ Se precisar criar configurações diferentes, basta criar novos flavors com o seguinte comando (o último parâmetro é o nome do flavor): microstack.openstack flavor create --ram 4096 --vcpus 2 --disk 40 m2.medium +----------------------------+--------------------------------- ----+ | Field | Value | +----------------------------+--------------------------------- ----+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 40 | | id | 7ccbd0a0-9977-48bc- 9754-5cf1113a44ce | | name | m2.medium | | os-flavor-access:is_public | True
  • 8. | | properties | | | ram | 4096 | | rxtx_factor | 1.0 | | swap | | | vcpus | 2 | +----------------------------+--------------------------------- ----+ O Microstack fornece um comando para criar uma máquina virtual de forma bem simples. Por exemplo, para criar uma máquina virtual utilizando a imagem do Ubuntu Bionic (ubuntu_bionic) e o flavor criado (m2.medium), use o comando abaixo: microstack.launch ubuntu_bionic --flavor m2.medium --name ubuntu_test Launching server ... Allocating floating ip ... Server ubuntu_test launched! (status is BUILD) Access it with `ssh -i $HOME/.ssh/id_microstack ubuntu@10.20.20.36` You can also visit the OpenStack dashboard at http://10.20.20.1:80 Por padrão, o Microstack armazena as chaves para acesso remoto às máquinas no diretório $HOME/.ssh/ . Para listar as chaves registradas no Openstack, utilize o comando abaixo: microstack.openstack keypair list +------------+------------------------------------------------- + | Name | Fingerprint | +------------+------------------------------------------------- +
  • 9. | microstack | c3:45:c3:06:14:33:17:58:8e:13:f7:ca:18:51:47:b9 | +------------+------------------------------------------------- + Para listar as máquinas virtuais criadas, use o seguinte comando: microstack.openstack server list +----------+-----------+---------+------------+-------+-------- ---+ | ID | Name | Status | Networks | Image | Flavor | +----------+-----------+---------+------------+-------+-------- ---+ | dce041fc | ubuntu_test | ACTIVE | test=192.168.222.192, 10.20.20.36 | ubuntu_bionic | m2.medium | | 058067fc | cirro_test | SHUTOFF | test=192.168.222.139, 10.20.20.93 | cirros | m1.tiny | +----------+-----------+---------+------------+-------+-------- ---+ Podemos ver que a máquina criada, ubuntu_test , está ativa. Ela possui o IP 192.168.222.192 da rede test , e o IP flutuante 10.20.20.36 da rede external . Como listado ao término da criação da máquina virtual, para acessá-la, utilize o seguinte comando (usuário ubuntu e chave microstack ): ssh -i $HOME/.ssh/id_microstack ubuntu@10.20.20.36 The authenticity of host '10.20.20.36 (10.20.20.36)' can't be established. ECDSA key fingerprint is SHA256:4O1tM/dXBUAJh /R4/VioAkTcRxES3QzA2RjWilKHCGc. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.20.20.36' (ECDSA) to the list of known hosts. Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Thu Oct 8 18:06:11 UTC 2020
  • 10. System load: 0.0 Processes: 90 Usage of /: 2.6% of 38.60GB Users logged in: 0 Memory usage: 4% IP address for ens3: 192.168.222.192 Swap usage: 0% * Canonical Livepatch is available for installation. - Reduce system reboots and improve kernel security. Activate at: https://ubuntu.com/livepatch 0 packages can be updated. 0 updates are security updates. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. ubuntu@ubuntu-test:~$ Também é possível usar o ping para verificar se a máquina virtual está acessível: ping 10.20.20.36 PING 10.20.20.36 (10.20.20.36) 56(84) bytes of data. 64 bytes from 10.20.20.36: icmp_seq=1 ttl=63 time=2.04 ms 64 bytes from 10.20.20.36: icmp_seq=2 ttl=63 time=1.23 ms 64 bytes from 10.20.20.36: icmp_seq=3 ttl=63 time=0.544 ms ^C --- 10.20.20.36 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.544/1.274/2.042/0.612 ms Podemos acessar as máquinas virtuais por ping e por ssh porque, por padrão, o
  • 11. grupo de segurança já foi automaticamente configurado no Microstack. Para listar os grupos de segurança, use o comando abaixo: microstack.openstack security group list +----------+---------+------------------------+-----------+---- --+ | ID | Name | Description | Project | Tags | +----------+---------+------------------------+-----------+---- --+ | 0d719815 | default | Default security group | | [] | | 3772dea7 | default | Default security group | 6a15fdc92 | [] | | cdf1c322 | default | Default security group | 66c975373 | [] | +----------+---------+------------------------+-----------+---- --+ Para listar os detalhes de um grupo de segurança específico, utilize o comando abaixo, informando o id do grupo: microstack.openstack security group show cdf1c322 +-----------------+-------------------------------------------- ----+ | Field | Value | +-----------------+-------------------------------------------- ----+ | created_at | 2020-09-08T18:18:50Z | | description | Default security group | | id | cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5 | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | name | default | | project_id | 66c97537384f4880814027af9bc4cf02 | | revision_number | 3
  • 12. | | rules | created_at='2020-09-08T18:20:16Z', direction='ingress', ethertype='IPv4', id='06927321-fb30-4e17- b659-ab97f4e935ca', protocol='icmp', remote_ip_prefix='0.0.0.0/0', updated_at='2020-09-08T18:20:16Z' | | | created_at='2020-09-08T18:18:50Z', direction='egress', ethertype='IPv4', id='158868a8-b1a6-480c- b171-78a697111ea5', updated_at='2020-09-08T18:18:50Z' | | | created_at='2020-09-08T18:18:51Z', direction='egress', ethertype='IPv6', id='265082d7- ea9c-4f98-9872-cf3b23bc3b28', updated_at='2020-09-08T18:18:51Z' | | | created_at='2020-09-08T18:18:50Z', direction='ingress', ethertype='IPv4', id='5e9501de-888b-48ec- 9edb-fa879f162881', remote_group_id='cdf1c322-c6ff-4c1b- 8a0b-14d9755e0fa5', updated_at='2020-09-08T18:18:50Z' | | | created_at='2020-09-08T18:18:50Z', direction='ingress', ethertype='IPv6', id='841d65ad-96e7-46a4- b6da-b401b56ca8bf', remote_group_id='cdf1c322-c6ff-4c1b- 8a0b-14d9755e0fa5', updated_at='2020-09-08T18:18:50Z' | | | created_at='2020-09-08T18:20:18Z', direction='ingress', ethertype='IPv4', id='a146fd79-3150-4fc9- aa48-a3486143d5e4', port_range_max='22', port_range_min='22', protocol='tcp', remote_ip_prefix='0.0.0.0/0', updated_at='2020-09-08T18:20:18Z' | | tags | [] | | updated_at | 2020-09-08T18:20:18Z | +-----------------+-------------------------------------------- ----+ Para listar as regras de um grupo, utilize o seguinte comando, informando o id do grupo: microstack.openstack security group rule list cdf1c322 +----------+------------+-----------+-----------+-------------- ----+ | ID | IP Protocol| IP Range | Port Range| Remote Sec. Group| +----------+------------+-----------+-----------+-------------- ----+ | 06927321| icmp | 0.0.0.0/0 | | None |
  • 13. | 158868a8| None | None | | None | | 265082d7| None | None | | None | | 5e9501de| None | None | | cdf1c322 | | 841d65ad| None | None | | cdf1c322 | | a146fd79| tcp | 0.0.0.0/0 | 22:22 | None | +---------+-------------+-----------+-----------+-------------- ----+ Se o grupo de segurança não tivesse as regras para acesso por ping e ssh , seria possível adicioná-las. Para exemplificar, vamos criar uma regra que permite acessar a porta 8080 da máquina virtual a partir de qualquer IP. Use o comando abaixo, especificando o id do grupo de segurança: microstack.openstack security group rule create --proto tcp --dst-port 8080 cdf1c322 +-------------------+------------------------------------------ ----+ | Field | Value | +-------------------+------------------------------------------ ----+ | created_at | 2020-10-08T18:34:03Z | | description | | | direction | ingress | | ether_type | IPv4 | | id | 988b6cbc-9546-4937-9ea1-80d081e2780b | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | name | None | | port_range_max | 8080 | | port_range_min | 8080 | | project_id | 66c97537384f4880814027af9bc4cf02
  • 14. | | protocol | tcp | | remote_group_id | None | | remote_ip_prefix | 0.0.0.0/0 | | revision_number | 0 | | security_group_id | cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5 | | tags | [] | | updated_at | 2020-10-08T18:34:03Z | +-------------------+------------------------------------------ ----+ Caso precise criar as regras para acesso com ping e ssh , use os comandos abaixo, informando o id do grupo de segurança: microstack.openstack security group rule create --proto icmp cdf1c322 microstack.openstack security group rule create --proto tcp --dst-port 22 cdf1c322 VMs com especificação de rede e atribuição de IP flutuante Agora vamos criar uma máquina virtual informando todos os parâmetros, sem usar o comando microstack.launch . Para isto, vamos criar uma rede privada, especificando uma faixa de IPs específica. O comando abaixo cria a rede priv_net : microstack.openstack network create priv_net +---------------------------+---------------------------------- ----+ | Field | Value | +---------------------------+---------------------------------- ----+ | admin_state_up | UP | | availability_zone_hints |
  • 15. | | availability_zones | | | created_at | 2020-10-08T19:14:37Z | | description | | | dns_domain | None | | id | ecf63d39-2e66-47cc- b8d4-27b59b099ad9 | | ipv4_address_scope | None | | ipv6_address_scope | None | | is_default | False | | is_vlan_transparent | None | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | mtu | 1450 | | name | priv_net | | port_security_enabled | True | | project_id | 66c97537384f4880814027af9bc4cf02 | | provider:network_type | geneve | | provider:physical_network | None | | provider:segmentation_id | 86 | | qos_policy_id | None | | revision_number | 1 | | router:external | Internal | | segments | None | | shared | False | | status | ACTIVE | | subnets | |
  • 16. | tags | | | updated_at | 2020-10-08T19:14:37Z | +---------------------------+---------------------------------- ----+ Agora criaremos uma subrede com a faixa de IPs 10.10.10.0/24 . Utilize o seguinte comando: microstack.openstack subnet create priv_sub --network priv_net --subnet-range 10.10.10.0/24 +-------------------+------------------------------------------ ----+ | Field | Value | +-------------------+------------------------------------------ ----+ | allocation_pools | 10.10.10.2-10.10.10.254 | | cidr | 10.10.10.0/24 | | created_at | 2020-10-08T19:19:45Z | | description | | | dns_nameservers | | | enable_dhcp | True | | gateway_ip | 10.10.10.1 | | host_routes | | | id | 8694a6f8-0456-4162-869e-d5f72eebc56a | | ip_version | 4 | | ipv6_address_mode | None | | ipv6_ra_mode | None | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | name | priv_sub |
  • 17. | network_id | ecf63d39-2e66-47cc-b8d4-27b59b099ad9 | | prefix_length | None | | project_id | 66c97537384f4880814027af9bc4cf02 | | revision_number | 0 | | segment_id | None | | service_types | | | subnetpool_id | None | | tags | | | updated_at | 2020-10-08T19:19:45Z | +-------------------+------------------------------------------ ----+ Para listar as subredes criadas, utilize o comando abaixo: microstack.openstack subnet list +----------+-----------------+----------+------------------+ | ID | Name | Network | Subnet | +----------+-----------------+----------+------------------+ | 2d91d661 | external-subnet | 541f68e4 | 10.20.20.0/24 | | 3682f140 | test-subnet | 986d190d | 192.168.222.0/24 | | 8694a6f8 | priv_sub | ecf63d39 | 10.10.10.0/24 | +----------+-----------------+----------+------------------+ Agora vamos criar uma máquina virtual nesta rede criada. Para isso, utilizaremos o flavor m1.tiny , o grupo de segurança default , a imagem cirros , o id da rede priv_net e a chave microstack . Caso queira conferir as opções de flavors, grupos de segurança, imagens, redes e chaves, basta utilizar os comandos abaixo (se precisar ver detalhes de alguma opção desses itens, basta trocar o list por show e especificar o nome ou id da opção): microstack.openstack flavor list microstack.openstack security group list
  • 18. microstack.openstack image list microstack.openstack network list microstack.openstack keypair list O comando abaixo cria a máquina virtual custom_vm com as configurações descritas acima: microstack.openstack server create --flavor m1.tiny --security- group cdf1c322-c6ff-4c1b-8a0b-14d9755e0fa5 --image cirros --nic net-id=ecf63d39-2e66-47cc-b8d4-27b59b099ad9 --key-name microstack custom_vm +-------------------------------------+------------------------ ----+ | Field | Value | +-------------------------------------+------------------------ ----+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | | | OS-EXT-STS:power_state | NOSTATE | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | 47gaiNsgXuZi | | config_drive | | | created | 2020-10-08T19:53:55Z
  • 19. | | flavor | m1.tiny (1) | | hostId | | | id | 221538d7-d647-4a3c- 9dfd-e558857c4b35 | | image | cirros (dee7c0d4-834c- 4c0e-a389-7306141e9870) | | key_name | microstack | | name | custom_vm | | progress | 0 | | project_id | 66c97537384f4880814027af9bc4cf02 | | properties | | | security_groups | name='cdf1c322- c6ff-4c1b-8a0b-14d9755e0fa5' | | status | BUILD | | updated | 2020-10-08T19:53:55Z | | user_id | d8f5bba950494dd4911744cbd1dcb285| | volumes_attached | | +-------------------------------------+------------------------ ----+ Listando as máquinas virtuais criadas, podemos ver a custom_vm : microstack.openstack server list +----------+-----------+---------+------------+-------+-------- ---+ | ID | Name | Status | Networks | Image | Flavor | | 221538d7 | custom_vm | ACTIVE | priv_net=10.10.10.144 | cirros | m1.tiny | dce041fc | ubuntu_test | ACTIVE | test=192.168.222.192, 10.20.20.36 | ubuntu_bionic | m2.medium | | 058067fc | cirro_test | SHUTOFF | test=192.168.222.139, 10.20.20.93 | cirros | m1.tiny | +----------+-----------+---------+------------+-------+-------- ---+
  • 20. Se tentarmos acessar a máquina virtual custom_vm , por ping ou ssh , não teremos sucesso, pois a mesma ainda não possui IP flutuante. Como visto acima, ela possui apenas o IP 10.10.10.144 , da rede privada priv_net . Para criar um IP flutuante, utilize o comando a seguir, especificando o nome da rede externa/pública ( external ): microstack.openstack floating ip create external +---------------------+---------------------------------------- ----+ | Field | Value | +---------------------+---------------------------------------- ----+ | created_at | 2020-10-08T20:12:59Z | | description | | | dns_domain | None | | dns_name | None | | fixed_ip_address | None | | floating_ip_address | 10.20.20.163 | | floating_network_id | 541f68e4-e7a5-436e-982b-5a464a215997 | | id | 8fe822e5-6863-4116-9ff8-86748b508885 | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | name | 10.20.20.163 | | port_details | None | | port_id | None | | project_id | 66c97537384f4880814027af9bc4cf02 | | qos_policy_id | None | | revision_number | 0 | | router_id | None
  • 21. | | status | DOWN | | subnet_id | None | | tags | [] | | updated_at | 2020-10-08T20:12:59Z | +---------------------+---------------------------------------- ----+ O IP flutuante 10.20.20.163 foi criado. Para listar todos os IPs flutuantes, usamos o comando abaixo: microstack.openstack floating ip list +-----------+---------------------+------------------+--------- -----------------------------+--------------------------------- -----+----------------------------------+ | ID | Floating IP Address | Fixed IP Address | Port | Floating Network | Project | +-----------+---------------------+------------------+--------- -----------------------------+--------------------------------- -----+----------------------------------+ | 4b23f5b30 | 10.20.20.172 | None | None | 541f68e4 | 66c9753738 | | 5f14f7380 | 10.20.20.193 | 192.168.222.196 | 4c9c61bd | 541f68e4 | 66c9753738 | | 6fb63178b | 10.20.20.93 | 192.168.222.139 | ec1edb43 | 541f68e4 | 66c9753738 | | 8fe822e5 | 10.20.20.163 | None | None | 541f68e4 | 66c9753738 | | b1c386024 | 10.20.20.36 | 192.168.222.192 | 697a22c2 | 541f68e4 | 66c9753738 | | da5b949f | 10.20.20.92 | 10.10.10.72 | 5eff5ad8 | 541f68e4 | 66c9753738 | +--------+---------------------+------------------+------------ --------------------------+------------------------------------ --+----------------------------------+ Podemos ver que o IP criado ainda não foi atribuído. Quando atribuímos, a coluna Fixed IP Address exibe o IP fixo da máquina virtual à qual o IP flutuante está associado.
  • 22. Além de atribuir o IP flutuante à máquina virtual custom_vm , precisamos associar a rede privada priv_net à rede externa external . Para isso, criaremos um roteador e o associaremos às redes. Crie o roteador com o comando abaixo: microstack.openstack router create router1 +-------------------------+------------------------------------ ----+ | Field | Value | +-------------------------+------------------------------------ ----+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2020-10-08T20:27:33Z | | description | | | distributed | False | | external_gateway_info | None | | flavor_id | None | | ha | False | | id | 819d543c- cc2d-45d4-8696-81478d950487 | | location | Munch({'cloud': '', 'region_name': '', 'zone': None, 'project': Munch({'id': '66c97537384f4880814027af9bc4cf02', 'name': 'admin', 'domain_id': None, 'domain_name': 'default'})}) | | name | router1 | | project_id | 66c97537384f4880814027af9bc4cf02 | | revision_number | 1 | | routes | | | status | ACTIVE | | tags | |
  • 23. | updated_at | 2020-10-08T20:27:33Z | +-------------------------+------------------------------------ ----+ Associe a rede external como gateway externo do roteador router1 : microstack.openstack router set router1 --external-gateway external Adicione a subrede priv_sub ao roteador router1 : microstack.openstack router add subnet router1 priv_sub Agora, atribuímos o IP flutuante 10.20.20.163 à máquina virtual custom_vm : microstack.openstack server add floating ip custom_vm 10.20.20.163 Com isso, podemos acessar a máquina usando o ping : ping 10.20.20.163 PING 10.20.20.163 (10.20.20.163) 56(84) bytes of data. 64 bytes from 10.20.20.163: icmp_seq=1 ttl=63 time=4.62 ms 64 bytes from 10.20.20.163: icmp_seq=2 ttl=63 time=0.876 ms 64 bytes from 10.20.20.163: icmp_seq=3 ttl=63 time=0.420 ms ^C --- 10.20.20.163 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.420/1.975/4.629/1.885 ms E podemos acessar a máquina usando ssh (com usuário cirros e chave microstack ):
  • 24. ssh -i $HOME/.ssh/id_microstack cirros@10.20.20.163 Espero que este tutorial possa simplificar o trabalho de quem esteja começando a usar o Openstack. Qualquer sugestão de melhoria é bem vinda. Openstack Microstack Cloud Computing Tutorial Computação Em Nuvem About Help Legal Get the Medium app