Como rodar scripts nos edge nodes

Para conseguir orquestrar serviços em seu dispositivo, é necessário configurar todos os recursos necessários para instalar, desinstalar e recarregar seus serviços.

Este guia apresenta como instalar a Azion CLI em seus edge nodes por meio de um recurso do tipo Shell Script configurado em um edge service específico.


  • Um edge node com o Edge Orchestrator Agent instalado e autorizado.
  • O gerenciador de pacotes Dpkg instalado neste edge node.

  1. Acesse Azion Console > Edge Libraries > Edge Services.
  2. Clique no botão Add Service.
  3. Nomeie este serviço como Instalação Azion CLI.
  4. Clique no botão Save.
  5. Na lista de serviços, defina o status como Active.
  1. Selecione o edge service que você acabou de criar, chamado Instalação Azion CLI.
  2. Vá para a aba Resources.
  3. Clique em Add Resource.
  4. Insira /scripts/install-cli/ no campo do caminho do arquivo.
  5. Escolha o tipo Shell Script.
  6. Escolha o trigger Install.
  7. Adicione o seguinte conteúdo ao bloco Content:
#!/bin/bash
# Define a URL do binário para download
BINARY_URL="https://github.com/aziontech/azion/releases/download/1.10.2/azion_1.10.2_linux_arm64.deb"
# Baixa o binário
wget $BINARY_URL -O /tmp/azion.deb
# Instala o binário
# Isso pressupõe que você tem o dpkg instalado no seu sistema
sudo dpkg -i /tmp/azion.deb
# Limpa o binário baixado
rm /tmp/azion.deb
echo "Instalação concluída com sucesso"
  1. Clique no botão Save.

Este script instalará o binário azion no seguinte caminho: /usr/local/bin

Vincule um edge service a um edge node

Seção intitulada Vincule um edge service a um edge node
  1. Acesse Azion Console > Edge Nodes.
  2. Selecione o edge node ao qual você deseja vincular um serviço.
  3. Vá para a guia Services.
  4. Escolha o serviço.
  5. Clique no botão Save.

  1. Execute a seguinte requisição POST no seu terminal, substituindo [TOKEN VALUE] pelo seu personal token e informando o nome do serviço a ser criado:
Terminal window
curl --location 'https://api.azionapi.net/edge_services/' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"name": "Instalação do Azion CLI"
}'
  1. Guarde o ID do edge service que você acabou de criar. Você pode acessá-lo no corpo da resposta, por exemplo:
{
"id": 1196,
"name": "Instalação do Azion CLI",
"updated_at": "2024-01-18T17:24:33Z",
"last_editor": "xxxxx",
"active": false,
"bound_nodes": 0,
"permissions": [
"read",
"write"
]
}
  1. Execute a seguinte requisição PATCH no seu terminal para definir o serviço como ativo, substituindo [TOKEN VALUE] pelo seu personal token e :id pelo ID do edge service:
Terminal window
curl --location --request PATCH 'https://api.azionapi.net/edge_services/:id' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"active": true,
"name": "Instalação do Azion CLI",
"variables": [
{
"name": "string",
"value": "string"
}
]
}'
  1. Execute a seguinte requisição POST no seu terminal:
Terminal window
curl --location 'https://api.azionapi.net/edge_services/:id/resources' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"content_type": "Shell Script",
"name": "/scripts/install-cli/",
"content": "#!/bin/bash\n\n# Define a URL do binário para download\nBINARY_URL=\"https://github.com/aziontech/azion/releases/download/1.10.2/azion_1.10.2_linux_arm64.deb\"\n\n# Baixa o binário\nwget $BINARY_URL -O /tmp/azion.deb\n\n# Instala o binário\n# Isso pressupõe que você tem o dpkg instalado no seu sistema\nsudo dpkg -i /tmp/azion.deb\n\n# Limpa o binário baixado\nrm /tmp/azion.deb\n\necho \"Instalação concluída com sucesso\""
}'

Substitua [TOKEN VALUE] pelo seu personal token, :id pelo ID do edge service e informe os seguintes parâmetros no corpo da requisição:

PropriedadeDescriçãoObrigatório
content_typeTipo de conteúdo do recurso a ser criadoSim
nameNome do recurso a ser criadoSim
contentConteúdo que define as ações realizadas quando o estado do recurso muda no edge nodeSim

Vincule um edge service a um edge node

Seção intitulada Vincule um edge service a um edge node
  1. Execute a seguinte requisição GET no seu terminal, substituindo [TOKEN VALUE] pelo seu personal token e recupere o ID do edge node ao qual deseja vincular a um edge service:
Terminal window
curl --location 'https://api.azionapi.net/edge_nodes/' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]'
Execute a seguinte requisição POST no seu terminal:
  1. Execute a seguinte requisição POST no seu terminal:
Terminal window
curl --location 'https://api.azionapi.net/edge_nodes/:id/services' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"service_id": :id,
"variables": [
{
"name": "string",
"value": "string"
}
]
}'

Substitua [TOKEN VALUE] pelo seu personal token, :id pelo ID do edge node e informe os seguintes parâmetros no corpo da requisição:

PropriedadeDescriçãoObrigatório
service_idID do edge service a ser vinculado ao edge nodeSim
variablesVariáveis a serem substituídas durante o processamento no edge nodeNão

Após este processo, em seu edge node, acesse a pasta:

Terminal window
cd /usr/local/bin

E execute:

Terminal window
./azion -h

A saída será semelhante a:

Terminal window
Azion CLI 1.10.2
DESCRIPTION
The Azion Command Line Interface is a unified tool to manage your Azion projects and resources
SYNOPSIS
azion <command> <subcommand> [flags]
EXAMPLES
$ azion
$ azion -t azionb43a9554776zeg05b11cb1declkbabcc9la
$ azion --debug
$ azion -h
...

Contribuidores