Personalizar instalações de software

Concluído

Os modelos do Azure CycleCloud facilitam a configuração de clusters HPC abstraindo detalhes de implementação da infraestrutura subjacente, permitindo que você se concentre no gerenciamento da carga de trabalho. No entanto, essa carga de trabalho normalmente tem várias dependências relacionadas ao software, que exigem etapas adicionais de personalização. Felizmente, o Azure CycleCloud também fornece uma estrutura para implementar essas etapas por meio de seu suporte para tarefas de provisionamento e gerenciamento de configuração aplicadas diretamente aos nós de cluster.

Suas metas incluem a necessidade de implantar imagens personalizadas e usar scripts de configuração desenvolvidos internamente que você tem usado em seu ambiente HPC local. Você deseja determinar como pode usar os recursos do Azure CycleCloud para atingir essas metas.

Como implementar o gerenciamento de configuração com o Azure CycleCloud?

O Azure CycleCloud oferece três métodos principais que você pode combinar de maneira arbitrária para personalizar o sistema operacional e o software em nós de cluster de acordo com seus próprios requisitos ou preferências:

  • Imagens personalizadas
  • Projetos
  • Inicialização da cloud

Como usar imagens personalizadas com o Azure CycleCloud?

O Azure CycleCloud dá suporte a nós de cluster que executam as distribuições Linux mais comuns e, dependendo do agendador, o Windows Server. Os modelos internos são pré-configurados com os padrões recomendados, mas você pode escolher imagens do Azure Marketplace ou provisionar nós com base em imagens personalizadas. A última opção pode ser preferível se você quiser minimizar o atraso associado à configuração pós-implantação do sistema operacional e quaisquer dependências adicionais de suas cargas de trabalho HPC. Também pode ser necessário para satisfazer as necessidades de negócios, segurança ou conformidade.

As imagens personalizadas permitem-lhe ter controlo total sobre o software pré-instalado e a configuração inicial do sistema operativo. Sua principal desvantagem é a sobrecarga associada à manutenção de várias imagens para acomodar diferentes combinações de aplicativos e suas versões, especialmente em cenários de desenvolvimento.

Como usar os projetos do Azure CycleCloud para instalação de software?

Um projeto do Azure CycleCloud é uma coleção de arquivos que você referencia ao definir configurações de nós de cluster por meio de modelos. Os projetos têm a seguinte estrutura de diretórios:

\project
      |- project.ini
      |- blobs
      |- templates
      |- specs
      |      | 
      |    default
      |      |- cluster-init
      |            |- scripts
      |            |- files
      |            |- tests
      |      | - chef
      |            |- site-cookbooks
      |            |- data_bag
      |            |- roles

O arquivo project.ini contém os metadados do projeto, incluindo seu nome, rótulo, versão e tipo. Os tipos suportados incluem agendador e aplicativo. O primeiro é usado para instalar e inicializar daemons do agendador em nós principais e nós de computação, enquanto o segundo define cargas de trabalho de cluster.

O diretório blobs contém blobs de projeto, como arquivos binários para um projeto de código aberto que pode ser redistribuído livremente, e blobs de usuário, que devem ser excluídos da redistribuição do projeto devido a restrições de licenciamento.

O diretório de modelos contém modelos, enquanto o diretório de especificações hospeda especificações que definem configurações a serem aplicadas aos nós de cluster de destino.

Nota

Como exemplo, um projeto Slurm contém, no mínimo, duas especificações: uma para os nós principais do agendador e outra para os nós de computação.

Dentro do diretório de especificações, há dois subdiretórios chamados cluster-init e Chef personalizado. Cluster-init contém scripts que são executados automaticamente no nó de destino. Arquivos de dados brutos que são copiados para o nó de destino e testes que serão executados quando um cluster for iniciado no modo de teste. O subdiretório personalizado do Chef contém arquivos específicos do Chef, incluindo arquivos de livro de receitas, saco de dados e definição de função. Você pode usar livros de receitas e receitas do Chef para configurar nós. As especificações do Cluster-init são mapeadas para funções e livros de receitas do Chef.

Nota

O Azure CycleCloud usa o Chef como a ferramenta de gerenciamento de configuração para preparar e configurar cada nó. O CycleCloud usa o Chef em um modo autônomo que não depende de um servidor Chef centralizado. Em vez disso, todos os livros de receitas destinados aos nós de cluster gerenciados são baixados do armário durante a fase de inicialização do sistema operacional. Nesse ponto, o Chef processa a lista de receitas definidas nas especificações cluster-init do nó, convertendo efetivamente a VM subjacente em um nó HPC em funcionamento.

Para provisionar um cluster com base em um projeto, você precisa carregar o conteúdo do projeto em um armário do Azure CycleCloud. Em seguida, sempre que o nó de destino é iniciado, ele baixa automaticamente os arquivos de projeto necessários do armário e processa as especificações necessárias.

Como usar o cloud-init com o Azure CycleCloud?

O Azure CycleCloud dá suporte ao cloud-init como uma forma de configurar nós de cluster durante a fase de inicialização, antes que as especificações relacionadas ao projeto sejam aplicadas. Isso fornece um método conveniente para lidar com qualquer infraestrutura ou dependências relacionadas a software, como a definição de configurações de rede ou a aplicação de atualizações de pacotes do sistema operacional.

Embora você possa definir a configuração cloud-init usando um modelo, também pode fazer isso diretamente da interface gráfica do Azure CycleCloud. Ao criar ou editar um cluster, você encontrará as configurações relevantes na guia Cloud-Init, onde você pode inserir os scripts para cada tipo de nó.

Nota

Como o cloud-init é executado antes de qualquer especificação de projeto do CycleCloud, o agendador e a configuração que o Azure CycleCloud aplica a um nó podem substituir as alterações feitas por meio do cloud-init. Se precisar garantir que seus comandos sejam executados após a instalação do agendador, use as especificações do projeto do Azure CycleCloud.