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
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
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
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-init
está instalado no KVM Guest Images que você pode baixar do Portal do Cliente da Red Hat. Quando você lança uma instância,cloud-init
está 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-init
em 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-init
já 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
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.cfg
inclui 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-config
no topo do arquivo.
1.2. a nuvem opera em etapas
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-init
no momento da inicialização. -
Durante a etapa local,
cloud-init
encontra fontes de dados locais e aplica a configuração da rede. -
Durante a etapa da rede,
cloud-init
processa os dados do usuário e executa os módulos listados emcloud_init_modules
em seu arquivocloud.cfg
. Você pode ativar, desativar ou adicionar módulos à seçãocloud_init_modules
. -
Durante a etapa de configuração,
cloud-init
executa os módulos listados emcloud_config_modules
em seu arquivocloud.cfg
. Você pode ativar, desativar ou adicionar módulos à seçãocloud_config_modules
. -
Durante a etapa final,
cloud-init
pode executar o que você incluiu emcloud_final_modules
em 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
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
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.cfg
e 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-init
Formatos de dados do usuário para obter informações sobre os tipos de dados do usuário que ocloud-init
permite. -
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-init
atua 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-init
para 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
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]
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']
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
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
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-init
ter 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.
Tabela 2.1. diretórios e arquivos de nuvens
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
Você pode usar cloud-init
com os seguintes produtos Red Hat.
-
Red Hat Virtualization. Uma vez instalado
cloud-init
em uma VM, você pode criar um modelo e aproveitar as funçõescloud-init
para 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-init
com as VMs. -
Red Hat OpenStack Platform. Você pode usar
cloud-init
para 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-init
para 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-init
com 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-init
quando 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
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.
Tabela 2.2. Módulos de nuvem suportados
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.
Tabela 2.3. Módulos não suportados
Módulo |
---|
apt_configure |
apt_pipeline |
byobu |
chef |
emitir_upstart |
grub_dpkg |
ubuntu_init_switch |
2.4. O arquivo default cloud.cfg
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.cfg
podem ser anuladas pelos dados do usuário. -
Ao executar
cloud-init
manualmente, você pode substituircloud.cfg
com 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.
users: 1 - default disable_root: 1 2 ssh_pwauth: 0 3 mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2'] 4 ssh_deletekeys: 1 5 ssh_genkeytypes: ~ 6 syslog_fix_perms: ~ 7 disable_vmware_customization: false 8 cloud_init_modules: 9 - disk_setup - migrator - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - rsyslog - users-groups - ssh cloud_config_modules: 10 - mounts - locale - set-passwords - rh_subscription - yum-add-repo - package-update-upgrade-install - timezone - puppet - chef - salt-minion - mcollective - disable-ec2-metadata - runcmd cloud_final_modules: 11 - rightscale_userdata - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - ssh-authkey-fingerprints - keys-to-console - phone-home - final-message - power-state-change system_info: default_user: 12 name: cloud-user lock_passwd: true gecos: Cloud User groups: [adm, systemd-journal] sudo: ["ALL=(ALL) NOPASSWD:ALL"] shell: /bin/bash distro: rhel 13 paths: cloud_dir: /var/lib/cloud 14 templates_dir: /etc/cloud/templates 15 ssh_svcname: sshd 16 # vim:syntax=yaml
- 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
ssh
está 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-init
funciona em vários estágios de inicialização. Defina esta opção para quecloud-init
possa registrar todas as etapas em seu arquivo de log. Encontre mais informações sobre esta opção no arquivocloud-config.txt
no 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
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
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).
## This yaml formatted config file handles setting ## logger information. The values that are necessary to be set ## are seen at the bottom. The top '_log' are only used to remove ## redundancy in a syslog and fallback-to-file case. ## ## The 'log_cfgs' entry defines a list of logger configs ## Each entry in the list is tried, and the first one that ## works is used. If a log_cfg list entry is an array, it will ## be joined with '\n'. _log: - &log_base | [loggers] keys=root,cloudinit [handlers] keys=consoleHandler,cloudLogHandler [formatters] keys=simpleFormatter,arg0Formatter [logger_root] level=DEBUG handlers=consoleHandler,cloudLogHandler [logger_cloudinit] level=DEBUG qualname=cloudinit handlers= propagate=1 [handler_consoleHandler] class=StreamHandler level=WARNING formatter=arg0Formatter args=(sys.stderr,) [formatter_arg0Formatter] format=%(asctime)s - %(filename)s[%(levelname)s]: %(message)s [formatter_simpleFormatter] format=[CLOUDINIT] %(filename)s[%(levelname)s]: %(message)s - &log_file | [handler_cloudLogHandler] class=FileHandler level=DEBUG formatter=arg0Formatter args=('/var/log/cloud-init.log',) - &log_syslog | [handler_cloudLogHandler] class=handlers.SysLogHandler level=DEBUG formatter=simpleFormatter args=("/dev/log", handlers.SysLogHandler.LOG_USER) log_cfgs: # Array entries in this list will be joined into a string # that defines the configuration. # # If you want logs to go to syslog, uncomment the following line. # - [ *log_base, *log_syslog ] # # The default behavior is to just log to a file. # This mechanism that does not depend on a system service to operate. - [ *log_base, *log_file ] # A file path can also be used. # - /etc/log.conf # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'}
Recursos adicionais
2.7. O layout do diretório de nuvens /var/lib/cloud
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
.
/var/lib/cloud/ - data/ - instance-id - previous-instance-id - previous-datasource - previous-hostname - result.json - set-hostname - status.json - handlers/ - instance - boot-finished - cloud-config.txt - datasource - handlers/ - obj.pkl - scripts/ - sem/ - user-data.txt - user-data.txt.i - vendor-data.txt - vendor-data.txt.i - instances/ f111ee00-0a4a-4eea-9c17-3fa164739c55/ - boot-finished - cloud-config.txt - datasource - handlers/ - obj.pkl - scripts/ - sem/ - user-data.txt - user-data.txt.i - vendor-data.txt - vendor-data.txt.i - scripts/ - per-boot/ - per-instance/ - per-once/ - vendor/ - seed/ - sem/ - config_scripts_per_once.once
Recursos adicionais
Capítulo 3. Configurando a nuvem-em-it
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
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
cloudinitiso
e vá para ele.$ mkdir cloudinitiso $ cd cloudinitiso
Crie um arquivo chamado
meta-data
. Adicione as seguintes informações ao arquivo.instance-id: citest local-hostname: citest-1
Crie um arquivo chamado
user-data
. Inclua as seguintes informações no arquivo.#cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== sample@redhat.com
NotaA linha final do arquivo
user-data
faz 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
genisoimage
para criar uma imagem ISO que incluauser-data
emeta-data
.# genisoimage -output ciiso.iso -volid cidata -joliet -rock user-data meta-data I: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 331 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 183 extents written (0 MB)
-
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.virt-install \ --memory 4096 \ --vcpus 4 \ --name mytestcivm \ --disk /var/lib/libvirt/images/rhel-8.1-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk /home/sample/cloudinitiso/ciiso.iso,device=cdrom \ --os-type Linux \ --os-variant rhel8.0 \ --virt-type kvm \ --graphics none \ --import
Acesse sua imagem como
cloud-user
. Sua senha écilogon
.citest-1 login: cloud-user Password: [cloud-user@citest-1 ~]$
Passos de verificação
Verifique o status
cloud-init
para ver se completou suas tarefas.[cloud-user@citest-1 instance]$ cloud-init status status: done
cloud-init
cria o layout do diretóriocloud-init
sob/var/lib/cloud
quando 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]
cloud-init
copia os dados do usuário para/var/lib/cloud/instance/user-data.txt
.$cat user-data.txt #cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== sample@redhat.com
Estas são amostras. O layout do diretório
cloud-init
inclui 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
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Mude a linha
chpasswd: {expire: False}
parachpasswd: {expire: True}
.#cloud-config password: mypassword chpasswd: {expire: True} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...SDvz user1@yourdomain.com - ssh-rsa AAB...QTuo user2@yourdomain.com
Isto funciona para expirar a senha porque
password
echpasswd
operam no usuário padrão, a menos que você indique o contrário.NotaEste é um cenário global. Quando você define
chpasswd
paraTrue
, 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
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Adicione a linha
user: <username>
, substituindo <username> pelo novo nome de usuário padrão.#cloud-config user: username password: mypassword chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...SDvz user1@yourdomain.com - ssh-rsa AAB...QTuo user2@yourdomain.com
3.4. Estabelecendo uma senha de raiz com a nuvem
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Crie uma lista de usuários na seção
chpasswd
do 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.
#cloud-config ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...SDvz user1@yourdomain.com - ssh-rsa AAB...QTuo user2@yourdomain.com chpasswd: list: | root:myrootpassword cloud-user:mypassword expire: False
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
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 seuusername
epassword
, definaauto-attach
paraTrue
, e definaservice-level
paraself-support
.rh_subscription: username: sample@redhat.com password: 'mypassword' auto-attach: True service-level: self-support
NotaA opção
service-level
requer 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 key
eorg
e definaauto-attach
paraTrue
.rh_subscription: activation-key: example_key org: 12345 auto-attach: True
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
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-attach
paraTrue
.rh_subscription: username: sample@redhat.com password: 'password' server-hostname: test.example.com auto-attach: True
3.6. Adicionando usuários e opções de usuário com a nuvem
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Adicionar ou modificar a seção
users
para adicionar usuários.-
Se você quiser que
cloud-user
seja o usuário padrão criado junto com os outros usuários especificados, certifique-se de adicionardefault
como a primeira entrada na seção. Se não for a primeira entrada,cloud-user
não será criado. Por padrão, os usuários são rotulados como
unconfined_u
se não houver um valorselinux-user
.#cloud-config users: - default - name: user2 gecos: User N. Ame selinux-user: staff_u groups: users,wheel ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.com chpasswd: list: | root:password cloud-user:mypassword user2:mypassword2 expire: False
Nota-
O exemplo coloca o usuário
user2
em dois grupos,users
ewheel
. -
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
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Adicione as seções para
bootcmd
eruncmd
; inclua comandos que você deseja quecloud-init
execute.#cloud-config users: - default - name: user2 gecos: User N. Ame groups: users chpasswd: list: | root:password fedora:myfedpassword user2:mypassword2 expire: False bootcmd: - echo New MOTD >> /etc/motd runcmd: - echo New MOTD2 >> /etc/motd
3.8. Acrescentar processadores adicionais com nuvens
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.-
Adicione uma entrada em
sudo
e especifique o acesso do usuário. Por exemplo,sudo: ALL=(ALL) NOPASSWD:ALL
permite o acesso irrestrito de um usuário. Adicione uma entrada em
groups
e especifique os grupos que incluem o usuário.#cloud-config users: - default - name: user2 gecos: User D. Two sudo: ["ALL=(ALL) NOPASSWD:ALL"] groups: wheel,adm,systemd-journal ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA...vz user@domain.com chpasswd: list: | root:password cloud-user:mypassword user2:mypassword2 expire: False
3.9. Configurando uma configuração de rede estática com a nuvem
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Adicione uma seção
network-interfaces
.network-interfaces: | iface eth0 inet static address 192.168.1.10 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254 bootcmd: - ifdown eth0 - ifup eth0
Você pode desativar uma configuração de rede adicionando as seguintes informações aos seus metadados.
network config: disabled
Recursos adicionais
3.10. Configurando apenas um usuário raiz com a nuvem
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Criar uma entrada para o usuário
root
na seçãousers
.O exemplo simples que se segue inclui uma seção
users
com apenas a opçãoname
.users: - name: root chpasswd: list: | root:password expire: False
Opcionalmente, configure chaves SSH para o usuário root.
users: - name: root ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AA..vz user@domain.com
3.11. Instalação de armazenamento com armazenamento de contêineres na nuvem
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-config
no topo do arquivo para quecloud-init
reconheç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-config
no topo do arquivo.Adicionar ou modificar o módulo
write_files
para 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.
write_files: - path: /etc/sysconfig/docker-storage-setup permissions: 0644 owner: root content: | ROOT_SIZE=6G
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
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.cfg
ou ao diretóriocloud.cfg.d
. -
Adicionar a diretiva
locale
, especificando a localização. A seguinte amostra estabelece olocale
paraja_JP
(Japão) com a codificaçãoUTF-8
.
#cloud-config locale: ja_JP.UTF-8
Recursos adicionais
3.13. roteiros com nuvens e conchas
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
bootcmd
ouruncmd
, 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-init
para executar um script shell, você pode fornecer um script shell (completo com shebang (#!) ) em vez de fornecercloud-init
com 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
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.cfg
para edição. Comente ou remova a configuração que você não deseja que
cloud-init
atualize ao restaurar sua instância.Por exemplo, para evitar a atualização do arquivo chave SSH, remova
-ssh
da seçãocloud_init_modules
.cloud_init_modules: - disk_setup - migrator - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - rsyslog - users-groups # - ssh
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
3.15. Modificando uma VM criada a partir de uma imagem de convidado da KVM depois que a nuvem estiver em funcionamento
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.cfg
no diretório/etc/cloud
ou adicionar diretivas ao diretório/etc/cloud/cloud.cfg.d
. Execute o comando
cloud-init clean
para limpar os diretórios de forma quecloud-init
possa 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/*`
NotaVocê pode salvar a imagem limpa como uma nova imagem e usar essa imagem para várias VMs. As novas VMs rodam
cloud-init
usando sua configuração atualizadacloud-init
.Repetição
cloud-init
ou 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
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.file
que 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`
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-init
usando sua configuração atualizadacloud-init
.Re-executar
cloud-init
ou 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
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}
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.log
e/var/log/cloud-init-output.log
para 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 comandogrep
pararesizefs
.# grep resizefs /var/log/cloud-init.log
Notagrowpart
nã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-init
apenas com os módulos init./usr/bin/cloud-init -d init
Reexecutar
cloud-init
com todos os módulos em sua configuração./usr/bin/cloud-init -d módulos
Eliminar o cache
cloud-init
e forçarcloud-init
a funcionar após a inicialização.rm -rf /var/lib/cloud/* && /usr/bin/cloud-init -d init
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
Execute os seguintes comandos para reexecutar
cloud-init
.cloud-init init --local cloud-init init
Recursos adicionais