Conceitos Básicos

Este tópico discute como começar a usar o coleção do Ansible do OCI (Oracle Cloud Infrastructure). A coleção de Ansible do OCI substitui nossos módulos Ansible legados.

Observação

Se você usa atualmente nossos módulos do Ansible legados e gostaria de começar a usar coleções, consulte o nosso guia de migração.

Para iniciar o uso do Ansible com o OCI, certifique-se que você cumpra os pré-requisitos e instale a coleção do Ansible usando yum ou manualmente.

Dica

Você pode usar o Resource Manager para pré-instalar o Oracle Cloud Development Kit em uma instância do serviço Compute no seu compartimento. O Oracle Cloud Development Kit inclui Ansible, a coleção de Ansible do OCI e suas dependências e pré-configura a autorização necessária.

O Ansible e nossa coleção do Ansible também vêm pré-instalados e pré-autenticados no Cloud Shell.

Pré-requisitos para Usar o Ansible com o Oracle Cloud Infrastructure

  • Você deve ter uma conta no Oracle Cloud Infrastructure.
  • Você deve ter um usuário nessa conta, em um grupo de segurança com uma política que conceda as permissões necessárias para trabalhar com recursos nos compartimentos de contas. Para obter orientação, consulte Como as Políticas Funcionam.
  • Você deve ter as credenciais e as informações necessárias do OCID.

Instalando a Coleção do Ansible com o Yum

Se você estiver executando Oracle Linux 7 ou Oracle Linux 8, poderá usar a yum para instalar o RPM de coleção da Oracle Cloud Infrastructure Ansible.

O RPM de coleção Ansible instala a coleção do OCI Ansible e suas dependências necessárias: o OCI SDK para Python e Ansible.

Observação

Esta instalação usa o Python versão 3.6 e o Ansible versão 2.9 ou mais recente.

Use um dos comandos a seguir para ativar o repositório do desenvolvedor do Oracle Linux e instalar o RPM da coleção do Ansible, dependendo da sua versão do Oracle Linux.

Oracle Linux 7:

yum install -y oci-ansible-collection --enablerepo ol7_developer --enablerepo ol7_developer_EPEL

Oracle Linux 8:

yum install -y oci-ansible-collection --enablerepo ol8_developer --enablerepo ol8_developer_EPEL

Após a instalação do RPM, configure o arquivo de configuração do SDK e da CLI, conforme explicado em Configurando a Autenticação.

Testar a Instalação

Para testar a instalação do RPM e a configuração do SDK, você pode executar um playbook de amostra do Ansible.

Se você estiver usando o Oracle Linux 7, use o seguinte comando para testar sua instalação:

ansible-3 localhost -m oracle.oci.oci_object_storage_namespace_facts

Se você estiver usando o Oracle Linux 8, use o seguinte comando para testar sua instalação:

ansible localhost -m oracle.oci.oci_object_storage_namespace_facts

Instalação Manual

Instalando a Coleção do Ansible do Oracle Cloud Infrastructure

Instale a coleção do OCI Ansible no Ansible Galaxy usando o seguinte comando:

$ ansible-galaxy collection install oracle.oci

Se você já tiver instalado a coleção, poderá atualizar seus módulos para a versão mais recente adicionando o flag --force ao comando. Por exemplo:

$ ansible-galaxy collection install --force oracle.oci

Playbooks de Amostra

Os playbooks de exemplo estão disponíveis no projeto GitHub da coleção de Ansible do Oracle Cloud Infrastructure. A biblioteca de amostras é atualizada regularmente com a adição de novas amostras. Consulte Playbooks do Ansible de Exemplo para obter mais informações.

Criando um Exemplo de Playbook

Após a conclusão da instalação, ou se você estiver usando o Cloud Shell, poderá criar um playbook de amostra que use módulos Ansible. Segue um playbook de exemplo (chamado list_buckets.yml) que usa o módulo oci_object_storage_bucket_facts para extrair fatos pertencentes aos buckets do compartimento.

---
- name : List summary of existing buckets in OCI object storage
  collections:
    - oracle.oci
  connection: local
  hosts: localhost
  tasks:
    - name: List bucket facts
      oci_object_storage_bucket_facts:
         namespace_name: '<yournamespace>'
         compartment_id: '<yourcompartmentocid>'
      register: result
    - name: Dump result
      debug: 
        msg: '{{result}}'

Executando o Playbook

Execute o playbook Ansible usando o Python com este comando:

$ ansible-playbook list_buckets.yml

Como Obter a Documentação do Módulo

Informações detalhadas sobre como usar nossos módulos Ansible estão disponíveis em docs.oracle.com e readthedocs.io.

Para obter acesso a informações detalhadas sobre o uso de módulos Ansible na CLI, use o comando ansible-doc no nome do módulo. Por exemplo, para obter a documentação do módulo oci_object_storage_bucket_facts, execute o seguinte comando:

$ ansible-doc oracle.oci.oci_object_storage_bucket_facts

Configurando a Autenticação

Ao criar e configurar recursos da Oracle Cloud Infrastructure, os módulos do Ansible usam informações de autenticação descritas no Arquivo de Configuração da CLI e do SDK.

Cuidado

Credenciais do Usuário que são referenciadas nos arquivos da configuração do Oracle Cloud Infrastructure SDK concedem acesso aos recursos do Oracle Cloud Infrastructure. Portanto, é importante proteger as credenciais para impedir o acesso não autorizado a esses recursos. Para proteger as credenciais no nó controlador em que os seus playbooks Ansible são executados, siga as diretrizes descritas no documento Protegendo o Serviço IAM (consulte a seção "Credenciais do Serviço IAM").

Os módulos Ansible permitem que você substitua as informações de autenticação especificadas no arquivo de configuração do SDK usando as opções do módulo e as variáveis de ambiente. A documentação para substituições de autenticação é fornecida internamente, conforme descrito em Como Obter a Documentação do Módulo. No entanto, o uso de variáveis de ambiente e de opções de módulo Ansible para substituir informações de autenticação deve ser evitado em cenários de produção.

Recomendamos o uso de arquivos para especificar informações de autenticação do Oracle Cloud Infrastructure SDK. Para suportar vários usuários, use o recurso "perfis" no arquivo de configuração do SDK. Ao distribuir atribuições que usam módulos Ansible, certifique-se de que nenhuma credencial do serviço IAM esteja incluída com as atribuições.