Configuração e gerenciamento de nuvens - para RHEL 8
Utilização de nuvens para automatizar a inicialização de instâncias de nuvens
Resumo
Tornando o código aberto mais inclusivo Copiar o linkLink copiado para a área de transferência!
A Red Hat tem o compromisso de substituir a linguagem problemática em nosso código, documentação e propriedades da web. Estamos começando com estes quatro termos: master, slave, blacklist e whitelist. Por causa da enormidade deste esforço, estas mudanças serão implementadas gradualmente ao longo de vários lançamentos futuros. Para mais detalhes, veja a mensagem de nosso CTO Chris Wright.
Fornecendo feedback sobre a documentação da Red Hat Copiar o linkLink copiado para a área de transferência!
Agradecemos sua contribuição em nossa documentação. Por favor, diga-nos como podemos melhorá-la. Para fazer isso:
Para comentários simples sobre passagens específicas:
- Certifique-se de que você está visualizando a documentação no formato Multi-page HTML. Além disso, certifique-se de ver o botão Feedback no canto superior direito do documento.
- Use o cursor do mouse para destacar a parte do texto que você deseja comentar.
- Clique no pop-up Add Feedback que aparece abaixo do texto destacado.
- Siga as instruções apresentadas.
Para enviar comentários mais complexos, crie um bilhete Bugzilla:
- Ir para o site da Bugzilla.
- Como Componente, use Documentation.
- Preencha o campo Description com sua sugestão de melhoria. Inclua um link para a(s) parte(s) relevante(s) da documentação.
- Clique em Submit Bug.
Capítulo 1. Introdução ao cloud-init Copiar o linkLink copiado para a área de transferência!
cloud-init é um pacote de software que automatiza a inicialização de instâncias de nuvem durante a inicialização do sistema. Você pode configurar cloud-init para realizar uma variedade de tarefas. Algumas tarefas de exemplo que cloud-init pode realizar incluem:
- Configuração de um nome de anfitrião
- Instalação de pacotes em uma instância
- Roteiros em execução
- Suprimindo o comportamento padrão da máquina virtual
Onde você obtém sua imagem para configurar cloud-init depende de como você pretende utilizá-la.
-
O pacote
cloud-initestá instalado no KVM Guest Images que você pode baixar do Portal do Cliente da Red Hat. Quando você lança uma instância,cloud-initestá habilitado. As imagens KVM Guest Images que você baixa do Portal do Cliente da Red Hat são destinadas ao uso com a Red Hat Virtualization (RHV) e a Plataforma Red Hat OpenStack (RHOSP). Você também pode criar uma imagem do zero para a RHV e a RHOSP. -
Outra opção é fazer o download de uma imagem ISO do Portal do Cliente da Red Hat ou criar uma. Neste caso, você precisa instalar
cloud-initem sua imagem ISO. -
Se você pretende usar uma imagem com um fornecedor de nuvens (por exemplo, AWS ou Azure), use o Red Hat Image Builder para criar a imagem. As imagens do Image Builder são personalizadas para uso em provedores de nuvens específicos. Os tipos de imagem AMI, VHD, e qcow2 incluem
cloud-initjá instalados. Consulte Composição de uma imagem personalizada do sistema RHEL para obter informações sobre o Image Builder.
A maioria das plataformas de nuvem suportam cloud-init, embora os procedimentos de configuração e as opções suportadas variem. Alternativamente, você pode configurar cloud-init para um ambiente NoCloud.
Você pode configurar cloud-init em uma máquina virtual (VM) e depois usar essa VM como modelo para VMs adicionais ou clusters de VMs.
Produtos específicos da Red Hat (por exemplo, a Virtualização da Red Hat) têm procedimentos documentados para configurar cloud-init para uso com esses produtos.
Este documento se refere à documentação cloud-init em vários lugares. Consulte a documentação referida cloud-init para obter informações completas em cloud-init.
Pré-requisitos
- Cadastre-se para uma conta no Portal do Cliente Red Hat.
Recursos adicionais
1.1. configuração em nuvens Copiar o linkLink copiado para a área de transferência!
cloud-init usa instruções de arquivo em formato YAML para realizar tarefas. Você decide a configuração inicial que deseja que cloud-init realize, fornecendo instruções dentro dos arquivos YAML. Quando uma instância inicializa, o serviço cloud-init inicia e procura e executa as instruções. Tarefas concluídas durante o primeiro boot ou nos boots subsequentes de seu VM, com base em sua configuração cloud-init.
Você define as tarefas, configurando o arquivo /etc/cloud/cloud.cfg e adicionando diretrizes sob o diretório /etc/cloud/cloud.cfg.d/.
O arquivo
cloud.cfginclui diretrizes, tais como as de acesso e autenticação do usuário e informações do sistema.O arquivo também inclui módulos padrão e opcionais para
cloud-init. Os módulos são executados em ordem dentro de três fases que incluem a fase de inicializaçãocloud-init, a fase de configuração, e a fase final. Dentro do arquivocloud.cfg, os módulos para as três fases estão listados emcloud_init_modules,cloud_config_modules, ecloud_final_modules, respectivamente.-
O diretório
cloud.cfg.dé onde você pode adicionar diretivas adicionais paracloud-init. Quando você adiciona diretrizes ao diretóriocloud.cfg.d, normalmente as adiciona a um arquivo chamado*.cfg, e você sempre inclui#cloud-configno topo do arquivo.
1.2. a nuvem opera em etapas Copiar o linkLink copiado para a área de transferência!
cloud-init opera em cinco estágios durante uma inicialização do sistema. Essas etapas determinam se cloud-init funciona e onde encontra suas fontes de dados, entre outras tarefas. Segue um breve resumo das etapas.
-
A etapa do gerador
cloud-init, através do serviçosystemd, determina se deve executarcloud-initno momento da inicialização. -
Durante a etapa local,
cloud-initencontra fontes de dados locais e aplica a configuração da rede. -
Durante a etapa da rede,
cloud-initprocessa os dados do usuário e executa os módulos listados emcloud_init_modulesem seu arquivocloud.cfg. Você pode ativar, desativar ou adicionar módulos à seçãocloud_init_modules. -
Durante a etapa de configuração,
cloud-initexecuta os módulos listados emcloud_config_modulesem seu arquivocloud.cfg. Você pode ativar, desativar ou adicionar módulos à seçãocloud_config_modules. -
Durante a etapa final,
cloud-initpode executar o que você incluiu emcloud_final_modulesem seu arquivocloud.cfg. Você pode incluir instalações de pacotes que você normalmente executaria após a inicialização de um sistema e também pode incluir plug-ins de gerenciamento de configuração e scripts do usuário. Você pode ativar, desativar ou adicionar módulos à seçãocloud_final_modules.
As cinco etapas de inicialização estão descritas na seção de documentação cloud-init Boot Stages (Etapas de inicialização).
1.3. os módulos de nuvem são executados em fases Copiar o linkLink copiado para a área de transferência!
Quando cloud-init é executado, ele executa os módulos dentro de cloud.cfg em ordem em três fases que incluem a fase de rede (cloud_init_modules), a fase de configuração (cloud_config_modules), e a fase final (cloud_final_modules). Quando cloud-init roda pela primeira vez em uma VM, todos os módulos que você configurou rodam em suas respectivas fases. Em uma execução posterior de cloud-init, se um módulo roda dentro de uma fase depende do module frequency do módulo individual. Alguns módulos rodam toda vez que cloud-init roda; alguns módulos só rodam na primeira vez que cloud-init roda, mesmo que a identificação da instância mude.
Uma identificação de instância identifica de forma única uma instância. Quando um ID de instância muda, cloud-init trata a instância como uma nova instância.
Segue uma breve descrição dos valores module frequency.
- Per instance significa que o módulo funciona na primeira inicialização de uma instância. Por exemplo, se você clonar uma instância ou criar uma nova instância a partir de uma imagem salva, os módulos designados como por instância rodam novamente.
- Per once significa que o módulo funciona apenas uma vez. Por exemplo, se você clonar uma instância ou criar uma nova instância a partir de uma imagem salva, os módulos designados por uma vez não serão executados novamente nessas instâncias.
- Per always significa que o módulo funciona em todas as botas.
Você pode substituir a freqüência de um módulo ao configurar o módulo ou ao usar a linha de comando.
1.4. atua sobre os dados do usuário, metadados e dados do fornecedor Copiar o linkLink copiado para a área de transferência!
cloud-init consome e atua sobre dados de usuários, metadados e dados de fornecedores.
-
Os dados do usuário incluem diretrizes que você especifica no arquivo
cloud.cfge no diretóriocloud.cfg.d, por exemplo, os dados do usuário podem incluir arquivos para executar, pacotes para instalar e scripts shell. Consulte a seção de documentaçãocloud-initFormatos de dados do usuário para obter informações sobre os tipos de dados do usuário que ocloud-initpermite. -
Os metadados incluem dados associados a uma fonte de dados específica, por exemplo, os metadados podem incluir um nome de servidor e uma identificação de instância. Se você estiver usando uma plataforma de nuvem específica, a plataforma determina onde suas instâncias encontram dados e metadados do usuário. Sua plataforma pode exigir que você adicione metadados e dados do usuário a um serviço HTTP; neste caso, quando
cloud-inité executado, ele consome metadados e dados do usuário do serviço HTTP. Os dados do fornecedor são opcionalmente fornecidos pela organização (por exemplo, um provedor de nuvem) e incluem informações que podem personalizar a imagem para melhor se ajustar ao ambiente onde a imagem é executada.
cloud-initatua sobre dados opcionais do fornecedor e dados do usuário após ler quaisquer metadados e inicializar o sistema. Por padrão, os dados do fornecedor são executados na primeira inicialização. Você pode desativar a execução dos dados do fornecedor.Consulte a seção de documentação Metadados de Instância
cloud-initpara uma descrição dos metadados; Fontes de dados para uma lista de fontes de dados; e Dados do fornecedor para mais informações sobre os dados do fornecedor.
1.5. nuvem - identifica a plataforma de nuvens Copiar o linkLink copiado para a área de transferência!
cloud-init tenta identificar a plataforma de nuvens usando o script ds-identify. O script é executado na primeira inicialização de uma instância.
A adição de uma diretiva de fonte de dados pode economizar tempo quando cloud-init é executado. Você adicionaria a diretriz no arquivo /etc/cloud/cloud.cfg ou no diretório /etc/cloud/cloud.cfg.d. Segue uma amostra.
dataource_list:[Ec2]
dataource_list:[Ec2]
Além de adicionar a diretiva para sua plataforma em nuvem, você pode configurar ainda mais cloud-init adicionando detalhes adicionais de configuração, tais como URLs de metadados.
datasource_list: [Ec2]
datasource:
Ec2:
metadata_urls: ['http://169.254.169.254']
datasource_list: [Ec2]
datasource:
Ec2:
metadata_urls: ['http://169.254.169.254']
Após cloud-init rodar, você pode visualizar um arquivo de log (run/cloud-init/ds-identify.log) que fornece informações detalhadas sobre a plataforma.
Recursos adicionais
Capítulo 2. Suporte de chapéu vermelho para a nuvem Copiar o linkLink copiado para a área de transferência!
Este capítulo cobre o suporte da Red Hat para cloud-init. Ele inclui informações sobre os produtos Red Hat que usam cloud-init, cloud-init módulos que a Red Hat suporta, e diretórios e arquivos padrão.
2.1. diretórios e arquivos importantes na nuvem Copiar o linkLink copiado para a área de transferência!
A tabela a seguir inclui diretórios e arquivos importantes. Revise estes diretórios e arquivos; eles permitem que você execute tarefas como:
-
Configurando
cloud-init -
Encontrando informações sobre sua configuração após
cloud-initter rodado - Examinando arquivos de log
- Encontrando modelos
Dependendo de seu cenário e fonte de dados, pode haver arquivos e diretórios adicionais importantes para sua configuração.
| Diretório ou Arquivo | Descrição |
|---|---|
|
|
O arquivo |
|
|
O diretório |
|
|
Quando |
|
|
O diretório |
|
|
Este diretório inclui modelos que você pode habilitar em |
|
|
O arquivo |
|
|
O diretório |
2.2. Produtos Red Hat que usam o sistema de nuvens Copiar o linkLink copiado para a área de transferência!
Você pode usar cloud-init com os seguintes produtos Red Hat.
-
Red Hat Virtualization. Uma vez instalado
cloud-initem uma VM, você pode criar um modelo e aproveitar as funçõescloud-initpara todas as VMs criadas a partir desse modelo. Consulte o tópico Usando o Cloud-Init para automatizar a configuração de máquinas virtuais para obter informações sobre como usarcloud-initcom as VMs. -
Red Hat OpenStack Platform. Você pode usar
cloud-initpara ajudar a configurar imagens para o OpenStack. Consulte o Guia de Instâncias e Imagens para obter mais informações. -
Red Hat CloudForms. Você pode usar
cloud-initpara fornecer VMs para Red Hat CloudForms. Consulte os Modelos de Personalização para Máquina Virtual e Provisionamento de Instância para mais informações. -
Red Hat Satellite. Você pode usar
cloud-initcom o Red Hat Satellite. Consulte Preparando Imagens de Nuvem na Virtualização da Red Hat para mais informações. -
Red Hat OpenShift. Você pode usar
cloud-initquando você criar VMs para OpenShift. Consulte Criar máquinas virtuais para obter mais informações.
2.3. A Red Hat suporta estes módulos com nuvens Copiar o linkLink copiado para a área de transferência!
A Red Hat suporta a maioria dos módulos cloud-init. Os módulos individuais podem conter múltiplas opções de configuração. A tabela a seguir lista todos os módulos cloud-init que a Red Hat suporta atualmente e fornece uma breve descrição e a freqüência do módulo padrão. Consulte a seção Módulos na seção de Documentação de Nuvem para obter descrições completas e opções para estes módulos.
| módulo Nuvem-Init | Descrição | Freqüência do Módulo Padrão |
|---|---|---|
| bootcmd | Executa comandos no início do processo de inicialização | por sempre |
| ca_certs | Acrescenta certificados CA | por instância |
| debug | Permite ou desativa a saída de informações internas para auxiliar na depuração | por instância |
| disable_ec2_metadata | Habilita ou desabilita os metadados do AWS EC2 | por sempre |
| disk_setup | Configura mesas divisórias e sistemas de arquivos simples | por instância |
| última_mensagem |
Especifica a mensagem de saída uma vez concluída | por sempre |
| foo | Exemplo mostra a estrutura do módulo (Módulo não faz nada) | por instância |
| growpart | Redimensiona as partições para preencher o espaço disponível em disco | por sempre |
| chaves_para_console | Permite o controle de impressões digitais e chaves que podem ser escritas no console | por instância |
| paisagem | Instala e configura um cliente paisagístico | por instância |
| locale | Configura o locale do sistema e o aplica em todo o sistema | por instância |
| mcollective |
Instala, configura e inicia | por instância |
| migrante |
Move as versões antigas de | por sempre |
| monta | Configura pontos de montagem e arquivos swap | por instância |
| phone_home | Coloca os dados em um host remoto após a conclusão da inicialização | por instância |
| power_state_change | Completa o desligamento e reinicialização após todos os módulos de configuração terem sido executados | por instância |
| fantoche | Instala e configura o fantoche | por instância |
| resizefs | Redimensiona um sistema de arquivo para utilizar todo o espaço disponível em uma partição | por sempre |
| resolve_conf |
Configura | por instância |
| rh_subscrição | Registra um sistema Red Hat Enterprise Linux | por instância |
| rightscale_userdata |
Adiciona suporte para ganchos de configuração RightScale para | por instância |
| rsyslog |
Configura o registro remoto do sistema usando | por instância |
| runcmd | Executa comandos arbitrários | por instância |
| minio_de_sal |
Instala, configura e inicia | por instância |
| scripts_per_boot | Roda por roteiros de inicialização | por sempre |
| scripts_per_instance | Roda por roteiro de instância | por instância |
| scripts_per_once | Executa scripts uma vez | por uma vez |
| scripts_utilizador | Executa scripts de usuário | por instância |
| scripts_vendor | Executa scripts de fornecedores | por instância |
| o domínio_semente | Fornece dados aleatórios de sementes | por instância |
| set_hostname | Define o nome do host e o nome de domínio totalmente qualificado (FQDN) | por sempre |
| set_passwords | Define senhas de usuários e ativa ou desativa a autenticação de senhas SSH | por instância |
| ssh_authkey_fingerprints | Logs impressões digitais de chaves SSH do usuário | por instância |
| ssh_import_id | Importação de chaves SSH | por instância |
| ssh | Configura o SSH, e hospeda e autoriza chaves SSH | por instância |
| fuso horário | Define o fuso horário do sistema | por instância |
| update_etc_hosts |
Atualizações | por sempre |
| update_hostname | Atualiza o nome do host e FQDN | por sempre |
| grupos_de_utilizadores | Configura usuários e grupos | por instância |
| write_files | Escreve arquivos arbitrários | por instância |
| yum_add_repo | Adiciona a configuração do repositório yum ao sistema | por sempre |
A tabela a seguir lista os módulos que a Red Hat não suporta atualmente.
| Módulo |
|---|
| apt_configure |
| apt_pipeline |
| byobu |
| chef |
| emitir_upstart |
| grub_dpkg |
| ubuntu_init_switch |
2.4. O arquivo default cloud.cfg Copiar o linkLink copiado para a área de transferência!
O arquivo /etc/cloud/cloud.cfg lista os módulos que compõem a configuração básica para cloud-init.
Os módulos no arquivo são os módulos padrão para cloud-init. Você pode configurar os módulos para seu ambiente ou remover os módulos que você não precisa. Os módulos que estão incluídos em cloud.cfg não fazem necessariamente nada ao serem listados no arquivo. Você precisa configurá-los individualmente se quiser que eles realizem ações durante uma das fases do cloud-init.
O arquivo cloud.cfg fornece a cronologia de execução dos módulos individuais. Você pode adicionar módulos adicionais a cloud.cfg desde que a Red Hat suporte os módulos que você deseja adicionar.
O que se segue é o conteúdo padrão do arquivo para o Red Hat Enterprise Linux (RHEL).
-
Os módulos são executados na ordem indicada em
cloud.cfg. Normalmente não se altera esta ordem. -
As diretrizes
cloud.cfgpodem ser anuladas pelos dados do usuário. -
Ao executar
cloud-initmanualmente, você pode substituircloud.cfgcom opções de linha de comando. - Cada módulo inclui suas próprias opções de configuração, onde você pode adicionar informações específicas.
- 1
- Especifica o usuário padrão para o sistema. Consulte Usuários e Grupos para mais informações.
- 2
- Habilita ou desabilita o login de raiz. Consulte Chaves Autorizadas para mais informações.
- 3
- Especifica se
sshestá configurado para aceitar a autenticação de senha. Consulte Definir senhas para obter mais informações. - 4
- Configura os pontos de montagem; deve ser uma lista contendo seis valores. Consulte Montagens para obter mais informações.
- 5
- Especifica se é necessário remover as chaves SSH padrão do host. Consulte Host Keys para obter mais informações.
- 6
- Especifica os tipos chave a gerar. Consulte Host Keys para obter mais informações.
- 7
cloud-initfunciona em vários estágios de inicialização. Defina esta opção para quecloud-initpossa registrar todas as etapas em seu arquivo de log. Encontre mais informações sobre esta opção no arquivocloud-config.txtno diretóriousr/share/doc/cloud-init/examples.- 8
- Habilita ou desabilita a personalização do VMware vSphere
- 9
- Os módulos desta seção são serviços que funcionam quando o serviço
cloud-inité iniciado, no início do processo de inicialização. - 10
- Estes módulos são executados durante a configuração
cloud-init, após o boot inicial. - 11
- Estes módulos funcionam na fase final de
cloud-init, após o término da configuração. - 12
- Especifica detalhes sobre o usuário padrão. Consulte Usuários e Grupos para obter mais informações.
- 13
- Especifica a distribuição
- 14
- Especifica o diretório principal que contém
cloud-init-specific subdiretórios. Consulte o layout do diretório para obter mais informações. - 15
- Especifica onde residem os gabaritos
- 16
- O nome do serviço SSH
Recursos adicionais
2.5. O diretório cloud.cfg.d Copiar o linkLink copiado para a área de transferência!
cloud-init age de acordo com as diretrizes que você fornece e configura. Tipicamente, essas diretrizes estão incluídas no diretório cloud.cfg.d.
Enquanto você pode configurar módulos adicionando diretivas de dados do usuário dentro do arquivo cloud.cfg, como melhor prática considere deixar cloud.cfg não modificado. Acrescente suas diretrizes ao diretório /etc/cloud/cloud.cfg.d. Adicionar diretivas a este diretório pode facilitar futuras modificações e atualizações.
Há várias maneiras de acrescentar diretrizes. Você pode incluir diretivas em um arquivo chamado *.cfg, que inclui o título #cloud-config. Normalmente, o diretório conteria vários arquivos *cfg. Há outras opções para adicionar diretivas, por exemplo, você pode adicionar um script de dados do usuário. Consulte os formatos de dados do usuário para obter mais informações.
Recursos adicionais
2.6. O arquivo padrão 05_logging.cfg Copiar o linkLink copiado para a área de transferência!
O arquivo 05_logging.cfg define as informações de registro para cloud-init. O diretório /etc/cloud/cloud.cfg.d inclui este arquivo, juntamente com outras diretrizes cloud-init que você adiciona.
cloud-init utiliza por padrão a configuração de registro em 05_logging.cfg. O que segue é o conteúdo default do arquivo para o Red Hat Enterprise Linux (RHEL).
Recursos adicionais
2.7. O layout do diretório de nuvens /var/lib/cloud Copiar o linkLink copiado para a área de transferência!
Quando cloud-init é executado pela primeira vez, ele cria um layout de diretório que inclui informações sobre sua instância e a configuração de cloud-init.
O que se segue é o modelo de layout do diretório para cloud-init.
O diretório pode incluir diretórios opcionais, tais como /scripts/vendor.
Recursos adicionais
Capítulo 3. Configurando a nuvem-em-it Copiar o linkLink copiado para a área de transferência!
Este capítulo inclui exemplos das tarefas de configuração mais comuns para cloud-init.
Sua configuração cloud-init pode exigir que você adicione diretrizes ao arquivo cloud.cfg e ao diretório cloud.cfg.d. Alternativamente, sua fonte de dados específica pode exigir que você adicione diretivas aos arquivos, como um arquivo de dados do usuário e um arquivo de metadados. Uma fonte de dados pode exigir que você carregue suas diretivas em um servidor HTTP. Verifique os requisitos de sua fonte de dados e adicione diretivas de acordo.
3.1. Criação de uma máquina virtual que inclui uma fonte de dados NoCloud Copiar o linkLink copiado para a área de transferência!
O que se segue é um exemplo de procedimento para a criação de uma nova VM que inclui cloud-init. Neste procedimento, você cria um arquivo meta-data e user-data. Seu arquivo meta-data inclui detalhes de instância. Seu arquivo user-data inclui informações para criar um usuário e conceder acesso. Você então inclui esses arquivos em uma nova imagem ISO, e anexa o arquivo ISO a uma nova VM criada a partir de uma imagem KVM Guest Image. Neste cenário, a fonte de dados é NoCloud.
Procedimento
Crie um diretório com o nome
cloudinitisoe vá para ele.mkdir cloudinitiso cd cloudinitiso
$ mkdir cloudinitiso $ cd cloudinitisoCopy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um arquivo chamado
meta-data. Adicione as seguintes informações ao arquivo.instance-id: citest local-hostname: citest-1
instance-id: citest local-hostname: citest-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um arquivo chamado
user-data. Inclua as seguintes informações no arquivo.Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaA linha final do arquivo
user-datafaz referência a uma chave pública SSH. Encontre suas chaves públicas SSH em~/.ssh/id_rsa.pub. Ao tentar este procedimento de amostra, modifique a linha para incluir uma de suas chaves públicas.Use o comando
genisoimagepara criar uma imagem ISO que incluauser-dataemeta-data.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Baixe uma imagem do KVM Guest Image do Portal do Cliente da Red Hat para o diretório
/var/lib/libvirt/images. Criar uma nova VM da KVM Guest Image usando o comando
virt-install. Inclua a imagem ISO que você criou como anexo à imagem.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Acesse sua imagem como
cloud-user. Sua senha écilogon.citest-1 login: cloud-user Password: [cloud-user@citest-1 ~]$
citest-1 login: cloud-user Password: [cloud-user@citest-1 ~]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Passos de verificação
Verifique o status
cloud-initpara ver se completou suas tarefas.cloud-init status status: done
[cloud-user@citest-1 instance]$ cloud-init status status: doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow cloud-initcria o layout do diretóriocloud-initsob/var/lib/cloudquando ele é executado, e atualiza ou muda certos conteúdos de diretório com base nas diretrizes que você especificou.Por exemplo, você pode confirmar que a fonte de dados é
NoCloud, verificando o arquivo de fonte de dados.cd /var/lib/cloud/instance cat datasource DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]
$ cd /var/lib/cloud/instance $ cat datasource DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]Copy to Clipboard Copied! Toggle word wrap Toggle overflow cloud-initcopia os dados do usuário para/var/lib/cloud/instance/user-data.txt.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Estas são amostras. O layout do diretório
cloud-initinclui muito mais informações.
Para o OpenStack, o Guia de Instâncias e Imagens inclui informações para a configuração de uma instância usando cloud-init. Veja Criando uma instância personalizada para procedimentos específicos.
Recursos adicionais
3.2. Expirando uma senha de usuário na nuvem com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode forçar cloud-user a mudar a senha cloud-user no primeiro login. Execute o seguinte procedimento para expirar uma senha.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Mude a linha
chpasswd: {expire: False}parachpasswd: {expire: True}.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Isto funciona para expirar a senha porque
passwordechpasswdoperam no usuário padrão, a menos que você indique o contrário.NotaEste é um cenário global. Quando você define
chpasswdparaTrue, todos os usuários que você cria precisam mudar suas senhas quando fazem o login.
3.3. Alterando um nome de usuário padrão com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode mudar o nome de usuário padrão para algo que não seja cloud-user.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Adicione a linha
user: <username>, substituindo <username> pelo novo nome de usuário padrão.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Estabelecendo uma senha de raiz com a nuvem Copiar o linkLink copiado para a área de transferência!
Para definir a senha raiz, crie uma lista de usuários.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Crie uma lista de usuários na seção
chpasswddo arquivo. O formato é mostrado no exemplo a seguir.NotaO espaço branco é significativo. Não inclua o espaço branco antes ou depois dos dois pontos em sua lista de usuários. Se você incluir espaço em branco, a senha é definida com um espaço dentro.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaSe você usar este método para definir a senha do usuário, você deve definir all passwords nesta seção.
3.5. Gerenciando assinaturas da Red Hat com o cloud-init Copiar o linkLink copiado para a área de transferência!
Você pode usar a diretiva rh_subscription para registrar seu sistema. Amostras a seguir. Para cada assinatura, você editaria seus dados de usuário.
Procedimento
O exemplo a seguir utiliza as opções auto-attach e service-level.
Em
rh_subscription, adicione seuusernameepassword, definaauto-attachparaTrue, e definaservice-levelparaself-support.rh_subscription: username: sample@redhat.com password: 'mypassword' auto-attach: True service-level: self-support
rh_subscription: username: sample@redhat.com password: 'mypassword' auto-attach: True service-level: self-supportCopy to Clipboard Copied! Toggle word wrap Toggle overflow NotaA opção
service-levelrequer que você utilize a opçãoauto-attach.
O exemplo a seguir utiliza as opções activation-key e org.
Em
rh_subscription, adicione seu númeroactivation keyeorge definaauto-attachparaTrue.rh_subscription: activation-key: example_key org: 12345 auto-attach: True
rh_subscription: activation-key: example_key org: 12345 auto-attach: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
O exemplo a seguir acrescenta um pool de assinaturas.
Em
rh_subscription, adicione seuusername,password, e o número do pool.rh_subscription: username: sample@redhat.com password: 'password' add-pool: XYZ01234567
rh_subscription: username: sample@redhat.com password: 'password' add-pool: XYZ01234567Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaEsta amostra é o equivalente do comando
subscription-manager attach --pool=XYZ01234567.
O exemplo a seguir estabelece o nome de um servidor hospedeiro no arquivo /etc/rhsm/rhsm.conf.
Em
rh_subscription, adicione seuusername,password,server-hostname, e definaauto-attachparaTrue.rh_subscription: username: sample@redhat.com password: 'password' server-hostname: test.example.com auto-attach: True
rh_subscription: username: sample@redhat.com password: 'password' server-hostname: test.example.com auto-attach: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. Adicionando usuários e opções de usuário com a nuvem Copiar o linkLink copiado para a área de transferência!
Você cria e descreve os usuários em uma seção users. Você pode modificar a seção para adicionar mais usuários à configuração inicial de seu sistema, e você pode definir opções adicionais de usuário.
Se você adicionar a seção users, você também deverá definir as opções padrão do usuário nesta seção.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Adicionar ou modificar a seção
userspara adicionar usuários.-
Se você quiser que
cloud-userseja o usuário padrão criado junto com os outros usuários especificados, certifique-se de adicionardefaultcomo a primeira entrada na seção. Se não for a primeira entrada,cloud-usernão será criado. Por padrão, os usuários são rotulados como
unconfined_use não houver um valorselinux-user.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nota-
O exemplo coloca o usuário
user2em dois grupos,usersewheel. -
A partir de
cloud-init 0.7.5, a lista de grupos não suporta o espaço branco. Consulte a BZ 1126365 para mais informações.
-
O exemplo coloca o usuário
-
Se você quiser que
3.7. Executando os primeiros comandos de inicialização com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode usar as seções runcmd e bootcmd para executar comandos durante a inicialização e inicialização.
A seção bootcmd é executada no início do processo de inicialização e, por padrão, é executada em cada inicialização. A seção runcmd é executada perto do final do processo e só é executada durante a primeira inicialização e inicialização.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Adicione as seções para
bootcmderuncmd; inclua comandos que você deseja quecloud-initexecute.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8. Acrescentar processadores adicionais com nuvens Copiar o linkLink copiado para a área de transferência!
Você pode configurar um usuário como um sudoer, adicionando uma entrada em sudo e groups à seção users.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.-
Adicione uma entrada em
sudoe especifique o acesso do usuário. Por exemplo,sudo: ALL=(ALL) NOPASSWD:ALLpermite o acesso irrestrito de um usuário. Adicione uma entrada em
groupse especifique os grupos que incluem o usuário.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9. Configurando uma configuração de rede estática com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode configurar sua configuração de rede com cloud-init, adicionando uma seção network-interfaces aos seus metadados.
O Red Hat Enterprise Linux fornece seu serviço de rede default através do NetworkManager, que é um daemon dinâmico de controle e configuração de rede que mantém os dispositivos e conexões de rede ativos e ativos quando disponíveis. Consulte o Getting Started with NetworkManager para obter mais informações em NetworkManager.
Sua fonte de dados pode fornecer uma configuração de rede. Consulte a seção de documentação cloud-init Fontes de configuração de rede para obter mais informações.
Se você não especificar nenhuma configuração de rede para cloud-init e não tiver desativado a configuração de rede, cloud-init tenta determinar se algum dispositivo anexo tem uma conexão. Se encontrar um dispositivo conectado, ele gera uma configuração de rede que emite um pedido DHCP na interface. Consulte a seção de documentação cloud-init Fallback Network Configuration para obter mais informações.
Procedimento
O exemplo a seguir acrescenta uma configuração de rede estática.
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Adicione uma seção
network-interfaces.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Você pode desativar uma configuração de rede adicionando as seguintes informações aos seus metadados.
network config: disabled
network
config: disabled
Recursos adicionais
3.10. Configurando apenas um usuário raiz com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode configurar seus dados de usuário para que você tenha um usuário root e nenhum outro usuário.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Criar uma entrada para o usuário
rootna seçãousers.O exemplo simples que se segue inclui uma seção
userscom apenas a opçãoname.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Opcionalmente, configure chaves SSH para o usuário root.
users: - name: root ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.comusers: - name: root ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.11. Instalação de armazenamento com armazenamento de contêineres na nuvem Copiar o linkLink copiado para a área de transferência!
Você pode configurar o armazenamento referenciando o utilitário container-storage-setup dentro do módulo write_files.
Procedimento
Dependendo das exigências de sua fonte de dados, abra seu arquivo de dados do usuário para edição, ou adicione a seguinte diretiva ao diretório
cloud.cfg.d.NotaTodas as diretrizes de usuário incluem
#cloud-configno topo do arquivo para quecloud-initreconheça o arquivo como contendo as diretrizes de usuário. Quando você incluir diretivas no diretóriocloud.cfg.d, nomeie o arquivo*.cfg, e inclua sempre#cloud-configno topo do arquivo.Adicionar ou modificar o módulo
write_filespara incluir o caminho para o utilitáriocontainer-storage-setup.O exemplo a seguir define o tamanho do volume lógico raiz para 6GB, em vez dos 3GB padrão.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaAntes da RHEL 7.4, container-storage-setup foi chamado docker-storage-setup. Se você estiver usando OverlayFS para armazenamento, a partir da RHEL 7.4 você pode agora usar esse tipo de sistema de arquivo com SELinux em modo de aplicação.
3.12. Mudando o local do sistema com a nuvem Copiar o linkLink copiado para a área de transferência!
Você pode configurar a localização do sistema com o módulo locale.
Procedimento
-
Dependendo dos requisitos de sua fonte de dados, abra seu arquivo de meta-dados para edição, ou adicione a seguinte diretiva ao arquivo
cloud.cfgou ao diretóriocloud.cfg.d. -
Adicionar a diretiva
locale, especificando a localização. A seguinte amostra estabelece olocaleparaja_JP(Japão) com a codificaçãoUTF-8.
#cloud-config locale: ja_JP.UTF-8
#cloud-config
locale: ja_JP.UTF-8
Recursos adicionais
3.13. roteiros com nuvens e conchas Copiar o linkLink copiado para a área de transferência!
Você pode adicionar valores de lista ou valores de string para bootcmd ou runcmd. Você também pode fornecer um script de shell dentro de seus dados de usuário.
-
Se você usar um valor de lista para
bootcmdouruncmd, cada item da lista é executado por sua vez usandoexecve. - Se você usar um valor de string, então a string inteira é executada como um script de shell.
-
Se você quiser usar
cloud-initpara executar um script shell, você pode fornecer um script shell (completo com shebang (#!) ) em vez de fornecercloud-initcom um arquivo.yaml.
Consulte os comandos Executar na primeira inicialização para obter exemplos de como colocar scripts shell em bootcmd e runcmd.
3.14. Impedindo que a nuvem-init atualize os arquivos de configuração Copiar o linkLink copiado para a área de transferência!
Quando você cria ou restaura uma instância a partir de uma imagem de backup, a identificação da instância muda. A mudança no ID da instância pode fazer com que cloud-init atualize os arquivos de configuração.
Execute o seguinte procedimento para garantir que cloud-init não atualize certos arquivos de configuração quando você criar ou restaurar a partir de backup.
Procedimento
-
Abra o arquivo
/etc/cloud/cloud.cfgpara edição. Comente ou remova a configuração que você não deseja que
cloud-initatualize ao restaurar sua instância.Por exemplo, para evitar a atualização do arquivo chave SSH, remova
-sshda seçãocloud_init_modules.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Etapas de verificação
Você pode verificar quais arquivos de configuração cloud-init foi atualizado. Para fazer isso, examine o arquivo /var/log/cloud/cloud-init.log. Os arquivos atualizados são registrados durante a inicialização de uma instância com mensagens que começam com Writing to. Segue um exemplo.
2019-09-03 00:16:07,XXX - util.py[DEBUG]: Writing to /root/.ssh/authorized_keys - wb: [XXX] 554 bytes 2019-09-03 00:16:08,XXX - util.py[DEBUG]: Writing to /etc/ssh/sshd_config - wb: [XXX] 3905 bytes
2019-09-03 00:16:07,XXX - util.py[DEBUG]: Writing to /root/.ssh/authorized_keys - wb: [XXX] 554 bytes
2019-09-03 00:16:08,XXX - util.py[DEBUG]: Writing to /etc/ssh/sshd_config - wb: [XXX] 3905 bytes
3.15. Modificando uma VM criada a partir de uma imagem de convidado da KVM depois que a nuvem estiver em funcionamento Copiar o linkLink copiado para a área de transferência!
Esta seção fornece um procedimento de amostra para quando você quiser modificar sua configuração cloud-init antes de executar novamente cloud-init. Quando você lança uma VM que inclui o pacote cloud-init instalado e habilitado, cloud-init é executado em seu estado padrão naquela inicialização inicial de sua VM.
Procedimento
- Faça o login em seu VM.
-
Adicionar ou alterar diretivas, por exemplo, modificar o arquivo
cloud.cfgno diretório/etc/cloudou adicionar diretivas ao diretório/etc/cloud/cloud.cfg.d. Execute o comando
cloud-init cleanpara limpar os diretórios de forma quecloud-initpossa ser executado novamente. Você também pode executar os seguintes comandos como root para limpar o VM.`rm -Rf /var/lib/cloud/instances/*` `rm -Rf /var/lib/cloud/instance` `rm -Rf /var/lib/cloud/data/*`
`rm -Rf /var/lib/cloud/instances/*` `rm -Rf /var/lib/cloud/instance` `rm -Rf /var/lib/cloud/data/*`Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaVocê pode salvar a imagem limpa como uma nova imagem e usar essa imagem para várias VMs. As novas VMs rodam
cloud-initusando sua configuração atualizadacloud-init.Repetição
cloud-initou reinicialização da VM.cloud-init, implementando as mudanças de configuração que você fez.
3.16. Modificação de uma VM para uma fonte de dados específica depois que a nuvem estiver em funcionamento Copiar o linkLink copiado para a área de transferência!
Esta seção fornece um procedimento de amostra para quando você quiser modificar sua configuração cloud-init antes de executar novamente cloud-init. O procedimento a seguir usa o OpenStack como exemplo. Observe que o procedimento varia de acordo com sua fonte de dados.
Procedimento
-
Criar e lançar uma instância para a Plataforma OpenStack. Consulte Instâncias de Máquina Virtual para obter informações sobre como criar instâncias para o OpenStack. Neste exemplo, nossa máquina virtual inclui
cloud-init, que funciona na inicialização da máquina virtual. -
Adicionar ou alterar diretrizes. Por exemplo, modificar o arquivo
user-data.fileque está armazenado no servidor HTTP OpenStack. Limpar a máquina virtual. Execute os seguintes comandos como raiz.
`rm -rf /etc/resolv.conf /run/cloud-init` `userdel -rf cloud-user` `hostnamectl set-hostname localhost.localdomain` `rm /etc/NetworkManager/conf.d/99-cloud-init.conf`
`rm -rf /etc/resolv.conf /run/cloud-init` `userdel -rf cloud-user` `hostnamectl set-hostname localhost.localdomain` `rm /etc/NetworkManager/conf.d/99-cloud-init.conf`Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaVocê pode salvar a imagem limpa como uma nova imagem e usar essa imagem para várias máquinas virtuais. As novas máquinas virtuais rodam
cloud-initusando sua configuração atualizadacloud-init.Re-executar
cloud-initou reiniciar a máquina virtual.A nuvem volta a funcionar, implementando as mudanças de configuração que você fez.
3.17. Resolução de problemas de nuvens Copiar o linkLink copiado para a área de transferência!
Você pode solucionar problemas em sua instância depois de cloud-init ter sido executado, examinando seus arquivos de configuração e de registro. Uma vez identificado o problema, você pode reexecutar cloud-init em sua instância.
Você pode rodar cloud-init a partir da linha de comando usando o comando cloud-init. Para visualizar a sintaxe do comando, juntamente com uma descrição dos argumentos e subcomandos opcionais, execute o comando cloud-init --help. A sintaxe básica é a seguinte.
cloud-init [-h] [--version] [--file FILES] [--debug] [--force]
{init,modules,single,query,dhclient-hook,features,analyze,devel,collect-logs,clean,status}
cloud-init [-h] [--version] [--file FILES] [--debug] [--force]
{init,modules,single,query,dhclient-hook,features,analyze,devel,collect-logs,clean,status}
O procedimento que se segue oferece idéias para identificar problemas com cloud-init e amostras para a execução do programa novamente.
Procedimento
Reveja os arquivos de configuração do
cloud-init.-
Examine o arquivo de configuração
/etc/cloud/cloud.cfg. Verifique quais módulos estão incluídos emcloud_init_modules,cloud_config_modules, ecloud_final_modules. -
Verifique as diretrizes (arquivos
*.cfg) no diretório/etc/cloud/cloud.cfg.d.
-
Examine o arquivo de configuração
Consulte os arquivos
/var/log/cloud-init.loge/var/log/cloud-init-output.logpara obter detalhes sobre uma questão específica. Por exemplo, se o problema foi que a partição raiz não foi automaticamente estendida, verifique as mensagens de registro paragrowpart. Se o sistema de arquivo não foi estendido, verifique as mensagens de log pararesizefs. Segue um exemplo de comandogreppararesizefs.grep resizefs /var/log/cloud-init.log
# grep resizefs /var/log/cloud-init.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow Notagrowpartnão suporta LVM. Se sua partição raiz for baseada em LVM, a partição raiz não é automaticamente estendida na primeira inicialização.Rerun
cloud-init. A seguir, exemplos de cenários. Executar comandos como raiz.Repetição
cloud-initapenas com os módulos init./usr/bin/cloud-init -d init
/usr/bin/cloud-init -d initCopy to Clipboard Copied! Toggle word wrap Toggle overflow Reexecutar
cloud-initcom todos os módulos em sua configuração./usr/bin/cloud-init -d módulos
/usr/bin/cloud-init -d módulosCopy to Clipboard Copied! Toggle word wrap Toggle overflow Eliminar o cache
cloud-inite forçarcloud-inita funcionar após a inicialização.rm -rf /var/lib/cloud/* && /usr/bin/cloud-init -d init
rm -rf /var/lib/cloud/* && /usr/bin/cloud-init -d initCopy to Clipboard Copied! Toggle word wrap Toggle overflow Execute os seguintes comandos para limpar diretórios e simular uma instância limpa.
rm -Rf /var/lib/cloud/instances/* rm -Rf /var/lib/cloud/instance rm -Rf /var/lib/cloud/data/* reboot
rm -Rf /var/lib/cloud/instances/* rm -Rf /var/lib/cloud/instance rm -Rf /var/lib/cloud/data/* rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow Execute os seguintes comandos para reexecutar
cloud-init.cloud-init init --local cloud-init init
cloud-init init --local cloud-init initCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais