infraascode

Adicionando Vnet a infraestrutura existente com Peering e propagação BGP, via CLI (Bash) Azure

Como vimos em nossa seria de artigos de criação de vnet, peering, bgp e VPN IPSec com BGP, vamos criar mais uma vnet em nossa infraestrutura já existente. Veja nossos artigos nas sequencia:

Criando Vnet com Tags via CLI (Bash) Azure
Criando Virtual Network Gateway (VPN com BGP) Azure via CLI (Bash)
Criando Virtual Network com Peering via CLI (Bash) Azure
Criando Peering Virtual Network (Azure) via CLI (Bash) com Gateway de propagação.
Criando Local Network Gateway com BGP – VPN IPSec Fortigate.

Vamos ao script

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’

##região
export Location=brazilsouth

##Environmont
export Environment_01=’backend-Prodution’

##Resouce Group
export RG_Name01=”${Environment_01}”-Network

##Vnet Name
export Vnet_01=vnet-“${Environment_01}”

##Nome do Objeto
export NameObject_01=”${Vnet_01}”

##Projeto
export Projecto_01=’Backend’
export ID_Object=’678654789′

##Centro de Custo
export Costcenter_Team=’Team Backend’
export Costcenter_Number=’78954′

##Suporte Acionamento
export Support_Team=’team-backend@santanacorp.com’
export Support_Number=’+55 11 3000-XXXX’

##CIDR Network (Prefixo da Rede)
export CIDR_01=’172.29.226.0/24′

##Nome subnet
export Subnet_01=sub01-“${NameObject_01}”
export Subnet_02=sub02-“${NameObject_01}”
export Subnet_03=sub03-“${NameObject_01}”
export Subnet_04=sub04-“${NameObject_01}”

##CIDR Subnet
export prefix_01=’172.29.226.0/26′
export prefix_02=’172.29.226.64/26′
export prefix_03=’172.29.226.128/26′
export prefix_04=’172.29.226.192/26′

##Tags
export Tag01_Key=”${Environment_01}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’
export Name_Value_05=’Centro de Custo Number’
export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’

#Seleciona Subscription
az account set –subscription “$Subscription_01”

#Criando Resource Groups
az group create –name “${RG_Name01}” –location $Location –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

#Criando Virtual Network (Vnet)
az network vnet create -g “${RG_Name01}” -n “${NameObject_01}” –address-prefix $CIDR_01 –location $Location –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}” 

#Criando Subnet
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_01 –address-prefixes $prefix_01
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_02 –address-prefixes $prefix_02
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_03 –address-prefixes $prefix_03
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_04 –address-prefixes $prefix_04

##Variaveis para criação do Peering

#Subscriptions
export Subscription_01=’Santana-COrp’

#Resouce Group
export RG_Name01=”Shared-Prodution-Network”export RG_Name02=”backend-Prodution-Network”

#Name Object
export NameObject_01=”${Vnet_01}”-“${Subscription_01}”-“${Environment_01}”

#Peering
export Vnet_Name_01=”vnet-Shared-Prodution”
export Vnet_Name_02=”vnet-backend-Prodution”
export Peering_01=”Peering-vnet-Shared-Prodution2″
export Peering_02=”Peering-backend-Prodution-Network”

#export Vnet_Remote=$(az network vnet show –resource-group Shared-Prodution-Network -n vnet-Shared-Prodution –query id –output tsv)

#Vnet Remote
export Vnet_Remote_01=”/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/backend-Prodution-Network/providers/Microsoft.Network/virtualNetworks/vnet-backend-Prodution”
export Vnet_Remote_02=”/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/Shared-Prodution-Network/providers/Microsoft.Network/virtualNetworks/vnet-Shared-Prodution”

#Selecionar subscription
az account set –subscription “${Subscription_01}”

#Criando Peering
## Vnet Shared Prodution

az network vnet peering create -g “${RG_Name01}” -n “${Peering_01}” –vnet-name “${Vnet_Name_01}” –remote-vnet “${Vnet_Remote_01}” –allow-vnet-access –allow-forwarded-traffic –allow-gateway-transit –allow-vnet-access

## Vnet Backend Prodution
az network vnet peering create -g “${RG_Name02}” -n “${Peering_02}” –vnet-name “${Vnet_Name_02}” –remote-vnet “${Vnet_Remote_02}” –allow-vnet-access –allow-forwarded-traffic –allow-vnet-access –use-remote-gateways

Veja o resultado

Em nosso fortigate

Com isso concluimos nossa seria de Vnet com peering e propagação BGP, a cada vnet nova criada com peering (utilizando as configuração aqui exibidas) não é necessário fazer mais nada em nosso fortigate ou Gateway de VPN, um lembrete muito importante as redes não podem se sobscrever (Over lapping).

Criando Local Network Gateway com BGP – VPN IPSec Fortigate.

Neste artigo iremos criar nossa conexão de VPN IPSec com BGP entre nosso Gateway BGP e nosso ambiente OnPremises com Fortigate.

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’
##região
export Location=brazilsouth
##Resouce Group
export RG_Name01=”${Environment_01}”-Network
##Projeto
export Projecto_01=’VPN Produção BGP’
export ID_Object=’789654741′
##Centro de Custo
export Costcenter_Team=’Team Network’
export Costcenter_Number=’78954′
##Suporte Acionamento
export Support_Team=’team-network@santanacorp.com’
export Support_Number=’+55 11 3000-XXXX’
##Environmont
export Environment_01=’VPN-BGP-Prodution’
export LGW_01=’lgw-fgt-operadora-01′
##Variaveis de Conexão
export IP_Peer_01=’xxx.xxx.xxx.xxx’ ##peer da VPN do firewall onpremises
export Local_Network_01=’192.168.0.0/16′ ##rede local do ambiente onpremises
export ASN_01=’65010′ ##este ASN é privado, você pode utilizar seu proprio ASN ou um disponivel pelo azure, neste exemplo iremos utilizar 65010 para ser o ASN local
export Peer_BGP_01=’169.254.21.11′ ##este é o IP que será utilizado na interface do firewall


##Tags
export Tag01_Key=”${Environment_01}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’
export Name_Value_05=’Centro de Custo Number’
export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’

##Criando Local Network Gateway
az network local-gateway create -g “${RG_Name01}” -n “${LGW_01}” -l “${Location}” –gateway-ip-address “${IP_Peer_01}” –local-address-prefixes “${Local_Network_01}” –asn “${ASN_01}” –bgp-peering-address “${Peer_BGP_01}” –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

Temos esse resutado

Agora iremos criar a conexão “connection”

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’
##região
export Location=brazilsouth
##Environment
export Environment_01=”${Shared-Prodution}”
##Resouce Group
export RG_Name01=’Shared-Prodution-Network’
##Variaveis da conexão
export Conenction_01=’connection-fgt-01′
export Gateway_Value_01=’GWVPNPROBGP’
export LGW_01=’lgw-fgt-operadora-01′
export PSK=’123vfe56TFr’
##Tags
export Tag01_Key=”${Environment_02}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’export Name_Value_05=’Centro de Custo Number’export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’
#Selecionar subscription
az account set –subscription “${Subscription_01}”
##Criando a conexão
az network vpn-connection create -g “${RG_Name01}” -n “${Conenction_01}” –vnet-gateway1 “${Gateway_Value_01}” –local-gateway2 “${LGW_01}” –shared-key “${PSK}” –enable-bgp -l “${Location}” –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

Resultado

Agora vamos para as configurações no Fortigate (neste exemplo iremos utilizar Fortinet, mas pode ser qualquer appliance com suport a BGP)

##Aqui definimos as Phase1

config vpn ipsec phase1-interface
edit AZU-HA-VPN-INT0
set interface port1 ## porta WAN
set ike-version 2
set keylife 28800
set peertype any
set proposal aes256-sha1 3des-sha1 aes256-sha256
set dhgrp 2
set remote-gw xxx.xxx.xxx.xxx ##IP 01 do Gateway que foi criado em nossos artigo
set psksecret 123vfe56TFr
next
end

##Aqui definimos a Phase2
config vpn ipsec phase2-interface
edit AZU-HA-VPN-INT0
set phase1name AZU-HA-VPN-INT0
set proposal aes256-sha1 3des-sha1 aes256-sha256 aes256gcm
set pfs disable

set keylifeseconds 27000
next
end

##Aqui editamos a interface que criamos com o endereçamento IP que criamos anteriormente em nossos artigos
config system interface
edit AZU-HA-VPN-INT0
set ip 169.254.21.11 255.255.255.255
set remote-ip 169.254.21.10 255.255.255.255
next
end

##Aqui configuramos o BGP
config router bgp
set as 65010
set router-id XXX.XXX.XXX.XXX ##IP Publico da interface da VPN

##Aqui configuramos o PAR BGP que configuramos no Azure
config neighbor
edit 169.254.21.10
set soft-reconfiguration enable
set remote-as 65512
next
end

##Aqui anunciamos nossas redes OnPremises, neste exemplo 192.168.0.0/16
config router bgp
config network
edit 1
set prefix 192.168.0.0 255.255.0.0
next
end

##Aqui configuramos uma ZONA para ter varias interfaces na mesma zona,
config system zone
edit Cloud
set interface AZU-HA-VPN-INT0
set intrazone allow
next
end

## Aqui configuramos as regras de firewall de INBOUND e OUTBOUND
config firewall policy
edit 1
set name LAN-TO-CLOUD

set srcintf port2
set dstintf Cloud
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
edit 2
set name CLOUD-TO-LAN
set srcintf Cloud
set dstintf port2
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end

Resultado


Aqui verificamos que as rotas BGP ja estão sendo anunciadas e recebidas


Nesta série de artigos vimos com criar vnet/gateway BGP/local network/connection com BGP.

Agora cada vnet criada com peering com nossa Vnet Shared-PRO, teremos propagada a CIDR de forma automatica para nossa BGP.

Para criação da segunda VPN com outra operadora basta seguir os passos novamente.

Criando Virtual Network com Peering via CLI (Bash) Azure

Continuando nossa infraestrutura de rede relembrando nestes artigos:

Criando Vnet e Criando GW VPN BGP

Neste artigo iremos criar uma Vnet em outro Resource Group e na mesa Region do nosso Gateway de VPN BGP (Isso não é um pré-requisito) e fazer um peering deixando nossa vnet onde esta nosso Gateway de VPN BGP como Gateway.

Nesta infraestrutura de rede não iremos precisar criar um vnet “gatewayvnet”

#!/bin/bash

#Declarando variaveis

#Selecionar subscription

export Subscription_01=’Santana-Corp’

#região

export Location=brazilsouth

#Environmont

export Environment_01=’databases-Prodution’

#Resouce Group

export RG_Name01=”${Environment_01}”-Network#

#Vnet Name

export Vnet_01=vnet-“${Environment_01}”

#Nome do Objeto

export NameObject_01=”${Vnet_01}”

#Projeto

export Projecto_01=’Data Bases Pro’
export ID_Object=’789654789′

#Centro de Custo

export Costcenter_Team=’Team Databases’
export Costcenter_Number=’78954′

#Suporte Acionanento

export Support_Team=’team-dba@santanacorp.com’
export Support_Number=’+55 11 3000-XXXX’

#CIDR Network (Prefixo da Rede)

export CIDR_01=’172.29.228.0/24′

#Nome subnet

export Subnet_01=sub01-“${NameObject_01}”
export Subnet_02=sub02-“${NameObject_01}”
export Subnet_03=sub03-“${NameObject_01}”
export Subnet_04=sub04-“${NameObject_01}”

#CIDR Subnet

export prefix_01=’172.29.228.0/26′
export prefix_02=’172.29.228.64/26′
export prefix_03=’172.29.228.128/26′
export prefix_04=’172.29.228.192/26′

#Tags

export Tag01_Key=”${Environment_01}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”

export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’
export Name_Value_05=’Centro de Custo Number’
export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’

#Seleciona Subscription

az account set –subscription “$Subscription_01”

#Criando Resource Groups

az group create –name “${RG_Name01}” –location $Location –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

#Criando Virtual Network (Vnet)

az network vnet create -g “${RG_Name01}” -n “${NameObject_01}” –address-prefix $CIDR_01 –location $Location –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

#Criando Subnet

az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_01 –address-prefixes $prefix_01
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_02 –address-prefixes $prefix_02
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_03 –address-prefixes $prefix_03
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_04 –address-prefixes $prefix_04

##Criando Peering entre a Vnet que acabamos de criar e a Vnet criada em nosso artigo anterior, clique aqui, para criação do Peering veja neste artigo.

Criando Virtual Network Gateway (VPN com BGP) Azure via CLI (Bash)

Neste artigo iremos criar um Gateway de VPN com BGP no Azure via CLI (Bash), utilizando Resource Group e Virtual Network existente criada neste artigo.

Esta infraestrutura de rede esta sendo preparada (criada) para abrigar outros projetos com outras Vnets.

###Nome final iremos ter que fazer uma intervenção manual via portal do Azure, pois ainda não descobri com inserir um IP APIPA (via CLI, PowerShell ou Terraform).

###Neste artigo estou partindo do principio que todos os objetos estão na mesma subscription e no mesmo resource group, se sua vnet estiver em outra subscription ou outro resource group será necessário alguns ajustes no script cli (bash), mostrarei em outra oportunidade.

Segue script

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’


##Environmont
export Environment_01=’Shared-Prodution’

##região
export Location=brazilsouth

##Resouce Group
export RG_Name01=”${Environment_01}”-Network

##Nome do Objeto
export NameObject_01=”${Vnet_01}”

##Projeto
export Projecto_01=’Rede HUB Pro’export ID_Object=’789654753′

##Centro de Custo
export Costcenter_Team=’Team Network’
export Costcenter_Number=’46852′

##Suporte Acionanento
export Support_Team=’team-network@santanacorp.com’export Support_Number=’+55 11 3000-XXXX’


##Tags
export Tag01_Key=”${Environment_01}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’
export Name_Value_05=’Centro de Custo Number’
export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’

##Projeto
export Projecto_01=’Rede HUB Pro’export ID_Object=’789654753′

##Centro de Custo
export Costcenter_Team=’Team Network’
export Costcenter_Number=’46852′

##Suporte Acionanento
export Support_Team=’team-network@santanacorp.com’export Support_Number=’+55 11 3000-XXXX’

##Gateway VPN BGP IP
export Gateway_Value_01=’GWVPNPROBGP’
export Public_IP_01=”${Gateway_Value_01}”-IP01
export Public_IP_02=”${Gateway_Value_01}”-IP02
export Generation_01=’Generation1′

##Vnet utilizada no ambiente anterior
export Vnet_01=vnet-“${Environment_01}”

##Criando IP Publico “tem que ser dinamico”
az network public-ip create -n “${Public_IP_01}” -g “${RG_Name01}” -l “${Location}” –allocation-method Dynamic –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

az network public-ip create -n “${Public_IP_02}” -g “${RG_Name01}” -l “${Location}” –allocation-method Dynamic –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

##Criando Gateway VPN BGP
az network vnet-gateway create -n “${Gateway_Value_01}” -l “${Location}” –public-ip-address “${Public_IP_01}” “${Public_IP_02}” -g “${RG_Name01}” –vnet “${Vnet_01}” –gateway-type ‘Vpn’ –sku ‘VpnGw1’ –vpn-type ‘RouteBased’ –vpn-gateway-generation “${Generation_01}” –client-protocol ‘IkeV2’ –asn ‘65512’ –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

Resultado, teremos nosso gateway de vpn bgp com nos IPs publicos

Lembra que falei que teremos que fazer um intervenção manual, então vamos em “configuration”
*Na verdade este procedimento só é necessário se seu equipamento que vai estabelecer o BGP exigir o Peer BGP com APIPA, mas eu prefiro utilizar neste formato.

Em Custom Azure APIPA IP adress, veja que temos 2 campos para preenchimento, o azure aceita utlizar os seguintes IP:

169.254.21.xxx e 169.24.22.xxx

Esse seram os Peer BGP onde seu equipamento irá estabelecer a conexão, neste exemplo utilizaremos os IPs abaixo na ponta Azure
1º 169.254.21.10
2º 169.254.22.10

Após ha alteração clique em salvar.

No próximo artigo iremos criar um “Local Network Gateway” com BGP enable e Fortigate.

link de referencia
https://docs.microsoft.com/en-us/cli/azure/network/vnet-gateway?view=azure-cli-latest#az_network_vnet_gateway_create

Criando banco de dados PaaS (SQL Server) Azure via CLI (bash)

Neste artigo vamos criar um banco de dados PaaS (SQL Server) no Azure via CLI bash.

#Login no conta do Azure
az login

#Seleciona Subscription
az account set –subscription “Santana Corp”

#Criando Resource Groups
az group create –name db-sql-prd –location brazilsouth –tags costcenter=projeto-x enviroment=producao squad=xxx

#Create DB SQL

##Criando server com user e senha
az sql server create -l brazilsouth -g db-sql-prd -n db-sql-prd -u ‘admindb’ -p ‘$N@taL56devDBaz’ –tags costcenter=projeto-x Environment=producao Squad=xxxx

##Criando data base
az sql db create -g db-sql-prd -s db-sql-prd -n db-sql-prd –service-objective Basic –tags costcenter=projeto-x Environment=producao Squad=xxxx

##Liberando acesso a servidor via firewall sql
###Liberando serviços do azure para acessar o servidor sql
az sql server firewall-rule create -g db-sql-prd  -s db-sql-prd  -n azureservice –start-ip-address 0.0.0.0 –end-ip-address 0.0.0.0

###Liberando o acesso ao sql da sua rede (internet)
az sql server firewall-rule create -g db-sql-prd -s db-sql-prd -n LinkOperadora –start-ip-address 200.200.200.1 –end-ip-address 200.200.200.10

links de referencias
https://docs.microsoft.com/pt-br/cli/azure/sql/server?view=azure-cli-latest
https://docs.microsoft.com/pt-br/cli/azure/sql/db?view=azure-cli-latest

Script Bash

#!/bin/bash

#Seleciona Subscription

az account set –subscription “Santana Corp”

#Criando Resource Groups

az group create –name db-sql-prd –location brazilsouth –tags costcenter=projeto-x Environment=producao Squad=xxxx

#Create DB SQL (Server)

az sql server create -l brazilsouth -g db-sql-prd -n db-sql-prdv -u ‘admindb’ -p ‘$N@taL56devDB’ –tags costcenter=projeto-x Environment=producao Squad=xxxx

#Create Data Base

az sql db create -g db-sql-prd -s db-sql-prd -n db-sql-prd–service-objective Basic –tags costcenter=projeto-x Environment=producao Squad=xxxx

#Create rule firewall
##Liberando o acesso a partir dos serviços do Azure
az sql server firewall-rule create -g db-sql-prd -s db-sql-prdv -n azureservice –start-ip-address 0.0.0.0 –end-ip-address 0.0.0.0

##Liberando o acesso para o Public IP especifico
az sql server firewall-rule create -g db-sql-prd -s db-sql-prdv -n LinkOperado –start-ip-address 200.200.200.1 –end-ip-address 200.200.200.10

*Somente em alguns casos devemos expor o banco de dados para internet, sempre recomendo utilizando via rede interna com private link, mas tem casos que realmente não tem como.



Criando entradas Azure DNS via CLI (bash)

Muitas vezes precisamos criar varios entradas em nosso DNS, utilizando o portal do Azure é bem simples, agora imagina ter que repitir a mesma ação por 20 vezes por exemplo para poder criar 20 entras diferentes? Com isso criei este post para ajudar no dia a dia da administração do Azure DNS, isso será feito via CLI, veja como instalar o azure cli aqui.

Primeiramente iremos nos conectar (usarei neste exemplo ubuntu linux como subsystem windows 10)

#Conectar no Azure
az login (enter)

#Selecionando a subscription (supondo que tenha mais de uma)
az account set –subscription “Santana Corp”

az network dns record-set a add-record –resource-group dns \
–zone-name charlessantana.com –record-set-name hello \
–ttl 300 –ipv4-address 192.0.78.24

Resultado

Agora vamos verificar se funcionou, com um simples nslookup

nslookup hello.charlessantana.com


Agora vamos criar uma entrada do tipo CNAME

az network dns record-set cname set-record –resource-group dns \
–zone-name charlessantana.com –record-set-name ww2 –cname ‘www.charlessantana.com.br

Script simples em bash

#!/bin/bash

#Seleciona Subscription

az account set –subscription “Santana Corp”

#Criando entrada DNS do Tipo A

az network dns record-set a add-record –resource-group dns \
–zone-name charlessantana.com –record-set-name hello –ttl 300 –ipv4-address 192.0.78.24

#Criando entrada DNS do Tipo CNAME

az network dns record-set cname set-record –resource-group dns \
–zone-name charlessantana.com –record-set-name ww2 –cname ‘www.charlessantana.com.br’