Atualizar DNS (Flush DNS) automaticamente em Azure Cloud Services (PaaS)

Por: Leonardo Villar

Eu trabalhei em um caso onde, por um motivo em especifico, era necessária a execução do comando “Flush DNS” nas instancias de um Cloud Services PaaS a cada 8 horas. E isso é completamente possível, porém, tendo em vista que estamos falando de Cloud Services PaaS e nós sabemos que elas são Stateless (não mantém configurações manuais), nós vamos utilizar Startup Tasks e o Task Scheduler to Windows para completar essa tarefa. Por favor, siga os passos a seguir:

 

Você terá que:

1. Criar um arquivo .cmd com o nome "flushdns.cmd" contendo o comando de Flush DNS (ipconfig /flushdns) e qualquer outro que você queira ou precise.

2. Criar outro arquivo .cmd com o nome "task-flushdns.cmd" contendo o comando para configurar o Task Scheduler para executar o arquivo "flushdns.cmd" (que criamos no passo acima) a cada 8 horas.

Comando:

Schtasks /create /tn FlushDNS /tr E:\approot\Startup\flushdns.cmd /sc hourly /mo 8 /ru System

Detalhes do commando:

a) Essa é a parte do comando que chama o arquivo flushdns.cmd: “E:\approot\Startup\flushdns.cmd”

b) Esse comando é executado com a conta de sistema (System Account): “ /rn System

c) Depois de eplicar o passo 3, essa será a localização onde estará localizado o arquivo flushdns.cmd “E:\approot\Startup\”

 

3. Para a Role (Web ou Worker Role)

a) Na Solution Explorer, abaixo de Roles no seu projeto Cloud Services, clique com o botão direito na role e selecione Add>New Folder. Crie uma pasta chamada Startup

b) Clique com o botão direito na pasta Startup e selecione Add>Existing Item. Selecione os arquivos task-flushdns.cmd e flushdns.cmd e os adicione na pasta Startup

 

4. Crie uma Startup Task no ServiceDefinition.csdef: Agora, você terá que criar a startup task propriamente dita, para isso, você precisará adicionar as seguintes linhas no ServiceDefinition.csdef abaixo de WebRole ou WorkerRole. Para mais informações sobre Startup Tasks, veja: Run Startup Tasks in Azure.

 

    <Startup>

         <Task commandLine="task-flushdns.cmd" executionContext="elevated" taskType="simple" />

            </Startup>

 

Nota: As configurações acima irão executar o arquivo task-flushdns.cmd que irá configurar o Windows Task Scheduler para executar o arquivo flushdns.cmd a cada 8 horas.

 

5. Faça um novo Deploy.

 

Fontes:

Flush and reset a client resolver cache using the ipconfig command

Schtasks

Run Startup Tasks in Azure