One place for hosting & domains

      Cliente

      Cómo instalar y configurar un demonio y cliente SNMP en Ubuntu 18.04


      El autor seleccionó el lnternet Archive para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Ser un administrador de sistemas implica principalmente recopilar información exacta acerca de servidores e infraestructuras. Existen diversas herramientas y opciones para recopilar y procesar este tipo de información. Muchas de estas herramientas se compilan con una tecnología denominada SNMP.

      SNMP significa “protocolo simple de administración de redes”. Es una alternativa a través de la cual los servidores pueden compartir información sobre su estado actual y, a la vez, un canal por el cual un administrador puede modificar valores predefinidos. Aunque el protocolo es ligero, la complejidad de la estructura de los programas que lo implementan puede aumentar rápidamente. Si desea obtener más información sobre los aspectos básicos del protocolo SNMP, consulte nuestro artículo Introducción al SNMP.

      En esta guía, configurará las herramientas para comunicarse mediante SNMP. Usará dos servidores de Ubuntu 18.04. para la demostración. Uno tendrá el administrador de SNMP, que se comunicará con el agente para implementar dispositivos de red. Este se citará como servidor administrador. El otro servidor tendrá el agente SNMP, que cumplirá las órdenes del servidor administrador. Este se citará como servidor agente. Podría optar por instalar el agente en la máquina administradora también, pero mantenerlos separados hace que sea más sencillo demostrar la funcionalidad que ofrece cada componente.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      Paso 1: Instalar el demonio y las utilidades SNMP

      Puede empezar por conocer la manera en que se puede implementar el SNMP en un sistema instalando el demonio y las herramientas en sus servidores de Ubuntu.

      Desde su máquina local, inicie sesión en el servidor administrador como usuario no root:

      • ssh your_username@manager_server_ip_address

      Actualice el índice de paquetes del administrador de paquetes APT:

      A continuación, instale el software de SNMP:

      • sudo apt install snmp snmp-mibs-downloader

      El paquete snmp ofrece un conjunto de herramientas de líneas de comando para emitir solicitudes de SNMP a los agentes. El paquete snmp-mibs-downloader ayudará a instalar y administrar los archivos de base de información gestionada (MIB), que realizan un seguimiento de los objetos de red.

      Luego, abra una nueva terminal en su máquina local e inicie sesión en el servidor agente:

      • ssh your_username@agent_server_ip_address

      En el servidor agente, actualice el índice de paquetes:

      Luego, instale el demonio SNMP.

      Tenga en cuenta que no necesita el paquete snmp-mibs-downloader, debido a que el servidor agente no administrará archivos MIB.

      Ahora que instaló estos componentes, configurará su servidor de administrador.

      Paso 2: Configurar el servidor administrador del SNMP

      Como se mencionó anteriormente, la mayor parte de la carga de trabajo tiene lugar en el servidor agente, de manera que su configuración en el servidor administrador tendrá menos participación. Solo debe modificar un archivo para asegurarse de que las herramientas SNMP puedan usar los datos MIB adicionales que instaló.

      Desde el servidor administrador, abra el archivo /etc/snmp/snmp.conf en el editor de texto con privilegios sudo. En este tutorial, se usará nano:

      • sudo nano /etc/snmp/snmp.conf

      En este archivo, existen algunos comentarios y una sola línea sin ellos. Para que el administrador pueda importar los archivos MIB, ingrese un comentario en la línea mibs:

      /etc/snmp/snmp.conf

      # As the snmp packages come without MIB files due to license reasons, loading
      # of MIBs is disabled by default. If you added the MIBs you can reenable
      # loading them by commenting out the following line.
      #mibs :
      

      Guarde y cierre snmp.conf; para ello, presione CTRL+X, Y y luego INTRO si usa nano.

      De esta manera, terminó de configurar el servidor administrador, pero aun debe usarlo para configurar el servidor agente, lo cual sucederá en el siguiente paso.

      Paso 3: Configurar el servidor agente del SNMP

      Como verdadero sistema servidor-cliente, el servidor agente no tiene ninguna de las herramientas externas necesarias para configurar sus propios ajustes de SNMP. Puede modificar algunos archivos de configuración para realizar algunos cambios, pero la mayoría de los que son necesarios se harán mediante la conexión al servidor agente del servidor administrador.

      En este tutorial, usará la versión 3 del protocolo SNMP. A diferencia de las versiones 1 y 2 de SNMP, en SNMPv3 cada mensaje contiene parámetros de seguridad que están codificados. En este paso, configurará reglas de autenticación y control de acceso del SNMPv3.

      Para comenzar, en el servidor agente, abra el archivo de configuración del demonio con privilegios sudo:

      • sudo nano /etc/snmp/snmpd.conf

      Dentro de este, deberá realizar algunos cambios. Estos se utilizarán principalmente para iniciar la configuración, de modo que pueda administrarla desde su otro servidor.

      Primero, debe cambiar la directiva agentAddress. Por el momento, está configurada para permitir solo las conexiones que se originan desde la computadora local. Deberá excluir la línea actual y quitar el comentario de la que está debajo de ella, que es la que permite todas las conexiones.

      /etc/snmp/snmpd.conf

      #  Listen for connections from the local system only
      #agentAddress  udp:127.0.0.1:161
      #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      

      Nota: Debido a que permitir todas las conexiones como esta no es la mejor práctica de seguridad, lo ideal es asegurarse de volver a bloquearlo una vez que haya finalizado el arranque.

      A continuación, introducirá temporalmente una línea createUser. Lo normal es que estas directivas no se guarden en este archivo; volverá a eliminarlo en un momento.

      El usuario que creará se llamará bootstrap y se usará como una plantilla en la cual creará su primer usuario real. Los paquetes SNMP lo hacen por medio de un proceso de clonación de las propiedades del usuario.

      Cuando defina un usuario nuevo, debe especificar el tipo de autenticación (MD5 o SHA) y también suministrar una contraseña que tenga al menos ocho caracteres. Si desea usar cifrado para la transferencia, como lo hará en este tutorial, también debe especificar el protocolo de privacidad (DES o AES) y, opcionalmente, una frase de contraseña del protocolo de privacidad. Si no proporciona una frase de contraseña de protocolo de privacidad, la frase de contraseña de autenticación se usará para el protocolo de privacidad también.

      Añada esta línea createUser al final del archivo:

      /etc/snmp/snmpd.conf

      ...
      createUser bootstrap MD5 temp_password DES
      

      Ahora que ya especificó un usuario nuevo, puede configurar el nivel de acceso que este tendrá. A través de este tutorial, configurará el usuario bootstrap y también el usuario nuevo que creará, llamado demo. Les permitirá acceso de lectura y escritura mediante la directiva rwuser (la alternativa es rouser para el acceso de solo lectura).

      Además, también impondrá el uso de cifrado especificando priv después de su usuario. Si quisiera restringir el usuario a una parte específica del MIB, podría especificar el identificador de objetos (OID) de mayor nivel al cual el usuario debería tener acceso al final de la línea.

      A los efectos de este tutorial, ambas líneas serán como las siguientes:

      /etc/snmp/snmpd.conf

      ...
      rwuser bootstrap priv
      rwuser demo priv
      

      Una vez que termine de hacer estos cambios, guarde y cierre el archivo.

      Para implementar estos cambios, reinicie el servicio snmpd en el servidor agente:

      • sudo systemctl restart snmpd

      El demonio SNMP escuchará conexiones en el puerto :161. Configure UFW para permitir conexiones del servidor administrador a este puerto:

      • sudo ufw allow from manager_server_ip_address to any port 161

      Puede obtener más información sobre UFW en Cómo configurar un firewall con UFW en Ubuntu 18.04.

      Ahora que el servidor agente ya está configurado, podrá conectar el servidor agente del servidor administrador para verificar la conexión.

      Paso 4: Verificar la autenticación en el servidor agente

      En este paso, probará para asegurarse de que pueda establecer conexión con la cuenta de bootstrap en el servidor agente. No obstante, antes de esto, en este tutorial verá la estructura general del envío de un comando SNMP.

      Cuando use el conjunto de herramientas que se incluye en el paquete snmp (el conjunto de software net-snmp), existen algunos patrones en la manera que debe invocar los comandos. Lo primero que debe hacer es autenticarse con el demonio SNMP con el que desea comunicarse. Esto generalmente implica proporcionar cierta información. La más común es la siguiente:

      • -v: este indicador se usa para especificar la versión del protocolo SNMP que le gustaría usar. En este tutorial, se usará la versión 3.
      • -c: este indicador se usará si usa cadenas de comunidad tipo SNMP v1 o v2 para la autenticación. Debido a que usará autenticación basada en el usuario tipo v3, no necesita hacerlo.
      • -u: este parámetro se usa para especificar el nombre de usuario con el cual se desea autenticarse. Para leer o modificar algo con SNMP, debe autenticarlo con un nombre de usuario conocido.
      • -l: esto se usa para especificar el nivel de seguridad con el que establecerá conexión. Los posibles valores son noAuthNoPriv sin autenticación ni cifrado, authNoPriv para la autenticación sin cifrado y authPriv para la autenticación y el cifrado. Debe configurar el nombre de usuario que usará para operar en el nivel de seguridad que especifique; de lo contrario, no se realizará la autenticación.
      • - a: este parámetro se usa para especificar el protocolo de autenticación que se usa. Los posibles valores son MD5 o SHA. Esto debe coincidir con la información que se especificó cuando se creó el usuario.
      • - x: este parámetro se usa para especificar el protocolo de cifrado que se usa. Los posibles valores son DES o AES. Esto debe coincidir con la información que se especificó cuando se creó el usuario. Esto es necesario siempre que figura priv después de la especificación de privilegios del usuario, lo cual hace obligatorio el cifrado.
      • -A: esto se usa para indicar la contraseña de autenticación que se especificó cuando se creó el usuario.
      • -X: esta es la frase de contraseña de cifrado que se especificó cuando se creó el usuario. Si no se especificó ninguno, pero se indicó un algoritmo de cifrado, se usará la contraseña de autenticación. Esto se necesita cuando se indica el parámetro -x o cuando después de la especificación de privilegio de un usuario se incluye priv, que exige cifrado.

      Con esta información, puede crear sus comandos. Según la manera en la que configuró el usuario bootstrap, los comandos que se usarán con esa cuenta tendrán el siguiente aspecto:

      snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
      

      Desde el servidor administrador, pruebe para asegurarse de que esté disponible su cuenta de bootstrap. Escriba lo siguiente para mostrar la información de sistema del servidor agente:

      • snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0

      La cadena 1.3.6.1.2.1.1.1.0 es el OID que permite ver la información del sistema. Mostrará el resultado uname -a en el sistema remoto.

      Esto generará el siguiente resultado:

      Output

      SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64

      Ahora que verificó que puede autenticarse en el servidor cuando ejecuta el demonio SNMP, podrá seguir creando su cuenta de usuario normal.

      Paso 5: Configurar la cuenta de usuario normal

      Aunque especificó los privilegios de la cuenta de usuario demo en el archivo snmpd.conf, aún no creó este usuario en realidad. En este paso, usará el usuario bootstrap como una plantilla para su nuevo usuario. Para ello, usará la herramienta snmpusm, que se utiliza para la administración de usuarios.

      En el servidor administrador, puede crear el usuario desde la plantilla con la herramienta snmpusm y la siguiente sintaxis general:

      snmpusm authentication_info agent_server_ip_address create new_user existing_user
      

      Con lo que se conoce sobre los indicadores de autenticación que necesita para emplear, y aprovechando la cuenta de usuario que ya tiene (bootstrap), puede crear un usuario que tenga los privilegios de usuario que ya definió (prueba).

      El comando tendrá el siguiente aspecto:

      • snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap

      Recibirá el siguiente mensaje:

      Output

      User successfully created.

      Ahora tiene un usuario plenamente activo llamado demo en su servidor agente. No obstante, todavía usa la misma información de autenticación que la cuenta bootstrap. Para aumentar la seguridad, puede cambiar la contraseña por otra. Esta vez, usará la cuenta demo para la autenticación. Recuerde que las contraseñas deben tener ocho caracteres como mínimo:

      • snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password

      Como respuesta, recibirá el siguiente mensaje:

      Output

      SNMPv3 Key(s) successfully changed.

      Puede probar sus credenciales y contraseña nuevas preguntando al servidor agente por la cantidad de tiempo que hace que el servicio SNMP se encuentra en ejecución. Usará el comando snmpget para obtener un solo valor del servidor agente.

      Esta vez, aproveche las definiciones MIB adicionales que descargó para solicitar el valor por nombre en lugar del ID numérico del OID.

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Obtendrá un valor que representa la última vez que se reinició el demonio SNMP remoto:

      Output

      DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53309) 0:08:53.09

      Ahora dispone de una cuenta de usuario en funcionamiento llamada demo. En el siguiente paso, simplificará el trabajo con los comandos SNMP si configura el cliente.

      Paso 6: Crear un archivo de configuración de cliente

      Es probable que ya haya notado a esta altura que los datos de autenticación de todos los comandos SNMP son bastante estáticos con cada respuesta. En vez de escribirlos cada vez, puede crear un archivo de configuración de cliente que contenga las credenciales con las que establece conexión.

      El archivo de configuración de cliente se puede colocar en dos lugares distintos según la amplitud con la que quiera compartirlo.

      Si desea compartir sus credenciales de inicio de sesión con algún usuario válido en su máquina de administración, puede disponer sus datos de configuración en el archivo snmp.conf global del servidor administrador. Será necesario que abra ese archivo con privilegios sudo:

      • sudo nano /etc/snmp/snmp.conf

      No obstante, si desea definir las credenciales de autenticación solo para su usuario, puede crear un directorio .snmp oculto en el directorio principal de su usuario en el servidor administrador y crear el archivo allí:

      • mkdir ~/.snmp
      • nano ~/.snmp/snmp.conf

      Independientemente de su decisión acerca de dónde ubicar su configuración, el contenido será el mismo.

      Los comandos que usará para la autenticación se encuentran en la siguiente tabla. En la columna derecha, puede ver los nombres de directivas que se utilizan para establecer esos datos de configuración dentro del archivo snmp.conf:

      Indicador de comandos Descripción Directiva snmp.conf traducida
      -u username Nombre de usuario de SNMPv3 para la autenticación. defSecurityName username
      -l authPriv Nivel de seguridad para la autenticación. defSecurityLevel authPriv
      -a MD5 El protocolo de autenticación que se usará. defAuthType MD5
      -x DES Protocolo de privacidad (cifrado) que se usará. defPrivType DES
      -Una passphrase Contraseña de autenticación para el nombre de usuario proporcionado. defAuthPassphrase passphrase
      -X passphrase Frase de contraseña de privacidad del nombre de usuario proporcionado. defPrivPassphrase passphrase

      Con esta información, puede crear un archivo snmp.conf correspondiente. A los efectos de esta guía, tendrá el siguiente aspecto:

      snmp.conf

      defSecurityName demo
      defSecurityLevel authPriv
      defAuthType MD5
      defPrivType DES
      defAuthPassphrase new_password
      defPrivPassphrase new_password
      

      Cuando termine, guarde y cierre el archivo.

      Ahora, podrá emitir comandos sin proporcionar los datos de autenticación. Solo necesitará el comando SNMP, el host y los argumentos del comando.

      En vez de escribir lo siguiente:

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Puede escribir esto:

      • snmpget agent_server_ip_address sysUpTime.0

      Como puede ver, esto reduce significativamente la cantidad de información que debe proporcionar en cada solicitud. A continuación, eliminará la cuenta bootstrap para reforzar la seguridad de la red.

      Paso 7: Eliminar la cuenta bootstrap

      Ahora que configuró su cuenta normal de manera correcta, podrá eliminar la cuenta bootstrap insegura.

      En el servidor agente, abra el archivo /etc/snmp/snmpd.conf de nuevo con privilegios sudo.

      • sudo nano /etc/snmp/snmpd.conf

      Encuentre y excluya (o elimine) las dos líneas que agregó anteriormente, que hacen referencia al usuario bootstrap:

      /etc/snmp/snmpd.conf

      ...
      #createUser bootstrap MD5 temp_password DES
      #rwuser bootstrap priv
      ...
      

      Guarde y cierre el archivo.

      Ahora, reinicie el demonio SNMP:

      • sudo systemctl restart snmpd

      Esto cumplirá con la recomendación de que no haya directivas createUser en el archivo snmpd.conf normal. También eliminará privilegios de ese usuario temporal.

      Si desea eliminar por completo el usuario bootstrap de usmUserTable, puede hacerlo emitiendo este comando del servidor administrador:

      • snmpusm agent_server_ip_address delete bootstrap

      Recibirá la siguiente respuesta:

      Output

      User successfully deleted.

      Conclusión

      A esta altura, habrá definido completamente una configuración cliente-servidor que se puede comunicar de manera segura con el protocolo SNMP. Ahora podrá agregar demonios adicionales en otros hosts y configurar el acceso a la cuenta en toda la infraestructura.

      Si desea obtener más información, puede consultar nuestro tutorial Cómo usar el conjunto de herramientas Net-SNMP para administrar y supervisar servidores para conocer las herramientas SNMP, la forma de usarlas a fin de obtener valores uno por uno o en conjunto y la forma de modificar datos.



      Source link

      Como instalar e configurar um daemon e cliente SNMP no Ubuntu 18.04


      O autor selecionou Internet Archive para receber uma doação como parte do programa Write for DOnations.

      Introdução

      Grande parte de ser um administrador de sistemas é coletar informações precisas de seus servidores e infraestrutura. Existe um grande número de ferramentas e opções para a reunião e processamento deste tipo de informação. Muitas delas são construídas em uma tecnologia chamada SNMP.

      SNMP significa protocolo simples de gerência de rede. É uma maneira que os servidores podem compartilhar informações sobre o estado atual deles, e também um canal através do qual um administrador pode modificar valores pré-definidos. Embora o protocolo em si seja leve, a estrutura de programas que implementam o SNMP pode ser bastante complexa. Para obter mais informações sobre o básico do protocolo SNMP, consulte nosso artigo de Introdução ao SNMP.

      Neste guia, você configurará as ferramentas para se comunicar usando o SNMP. Você usará dois servidores Ubuntu 18.04. para uma demonstração. Um deles terá o SNMP manager, que dirá ao agente para implementar dispositivos de rede. Este servidor será chamado de manager server. O outro servidor terá o SNMP agent, que agirá conforme as ordens do servidor gerente. Este servidor será chamado de agent server. Você pode escolher instalar o agente na máquina do gerente também. Porém, mantê-los separados torna mais fácil demonstrar qual funcionalidade é fornecida por cada componente.

      Pré-requisitos

      Para seguir este tutorial, você vai precisar do seguinte:

      Passo 1 — Instalando o daemon e utilitários SNMP

      Comece a explorar como o SNMP pode ser implementado em um sistema instalando o daemon e as ferramentas em seus servidores Ubuntu.

      A partir de sua máquina local, faça login no manager server como seu usuário não raiz:

      • ssh your_username@manager_server_ip_address

      Atualize o índice do pacote para o gerenciador de pacotes do APT:

      Em seguida, instale o software SNMP:

      • sudo apt install snmp snmp-mibs-downloader

      O pacote snmp fornece uma coleção de ferramentas de linha de comando para a emissão de solicitações SNMP a agentes. O pacote snmp-mibs-downloader ajudará a instalar e gerenciar os arquivos da Base de informações de gerenciamento (MIB), que monitora os objetos de rede.

      Então, abra um novo terminal em sua máquina local e faça login no agent server:

      • ssh your_username@agent_server_ip_address

      Em agent server, atualize o índice do pacote:

      Em seguida, instale o daemon SNMP.

      Note que você não precisa do pacote snmp-mibs-downloader, pois o agent server não gerenciará os arquivos MIB.

      Agora que instalou esses componentes, você configurará seu manager server.

      Passo 2 — Configurando o servidor gerente do SNMP

      Como mencionado anteriormente, a maioria dos trabalhos acontece no agent server. Por este motivo, sua configuração no manager server será mais simples. Você precisa modificar um arquivo para garantir que as ferramentas do SNMP possam usar os dados extras do MIB instalados.

      Em seu manager server, abra o arquivo /etc/snmp/snmp.conf em seu editor de texto com privilégios sudo. Este tutorial usará o nano.

      • sudo nano /etc/snmp/snmp.conf

      Neste arquivo, há alguns comentários e uma única linha descomentada. Para permitir que o gerente importe os arquivos do MIB, deixe a linha mibs : como comentário:

      /etc/snmp/snmp.conf

      # As the snmp packages come without MIB files due to license reasons, loading
      # of MIBs is disabled by default. If you added the MIBs you can reenable
      # loading them by commenting out the following line.
      #mibs :
      

      Salve e feche o snmp.conf pressionando CTRL+X, seguido de Y e, em seguida, ENTER se estiver usando o nano.

      Você acabou de configurar o manager server, mas ainda assim precisará usar este servidor para ajudar a configurar seu agent server, o que você fará no próximo passo.

      Passo 3 — Configurando o servidor agente do SNMP

      Como um verdadeiro sistema de cliente-servidor, o agent server não possui nenhuma das ferramentas externas necessárias para configurar sua própria configuração do SNMP. Você pode modificar alguns arquivos de configuração para fazer algumas alterações, mas a maioria das alterações que precisa fazer serão feitas ao se conectar ao seu agent server, a partir do servidor de gerenciamento.

      Neste tutorial, você usará a versão 3 do protocolo do SNMP. Ao contrário do SNMPv1 e do v2, no SNMPv3, cada mensagem contém parâmetros de segurança que são codificados. Neste passo, você configurará a autenticação e as regras de controle de acesso do SNMPv3.

      Para começar, em seu agent server, abra o arquivo de configuração do daemon com privilégios do sudo:

      • sudo nano /etc/snmp/snmpd.conf

      Dentro dele, você terá que fazer algumas alterações. Esses arquivos serão usados principalmente para a inicialização de sua configuração, para que possa gerenciá-la de seu outro servidor.

      Primeiro, altere a diretiva do agentAddress. Atualmente, ela está definida para permitir apenas conexões originárias do computador local. Será necessário comentar a linha atual e descomentar a linha abaixo dela, que permite todas as conexões.

      /etc/snmp/snmpd.conf

      #  Listen for connections from the local system only
      #agentAddress  udp:127.0.0.1:161
      #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      

      Nota: como permitir todas as conexões não é uma boa prática de segurança, é melhor se certificar de reverter isso logo após a conclusão da inicialização.

      Em seguida, insira temporariamente uma linha createUser. Essas diretrizes normalmente não são mantidas neste arquivo; você irá removê-las em instantes.

      O usuário que você está criando será chamado de bootstrap e será usado como modelo para criar seu primeiro usuário real. Os pacotes do SNMP fazem isso através de um processo de clonagem das propriedades do usuário.

      Ao definir um novo usuário, você deve especificar o tipo de autenticação (MD5 ou SHA), assim como fornecer uma senha que deve ter pelo menos oito caracteres. Caso esteja planejando usar criptografia para fazer a transferência, como fará neste tutorial, especifique também o protocolo de privacidade (DES ou AES) e, como opção, uma senha do protocolo de privacidade. Caso nenhuma senha de protocolo de privacidade seja fornecida, será usada a senha de autenticação para o protocolo de privacidade.

      Adicione essa linha createUser ao final do arquivo:

      /etc/snmp/snmpd.conf

      ...
      createUser bootstrap MD5 temp_password DES
      

      Agora que tem um novo usuário especificado, configure o nível de acesso que este usuário terá. Neste tutorial, você configurará este nível de acesso para seu usuário bootstrap e para o novo usuário que criará, chamado de demo. Você permitirá o acesso de leitura e a gravação deles usando a diretiva rwuser (outra alternativa é usar o rouser para acesso de somente leitura).

      Você também aplicará o uso da criptografia, especificando priv após seu usuário. Caso quisesse restringir o usuário a uma parte específica do MIB, você poderia especificar o identificador de objeto (IDO) de mais alto nível ao qual o usuário deve ter de acesso ao final da linha.

      Para fins deste tutorial, ambas as linhas serão como se segue:

      /etc/snmp/snmpd.conf

      ...
      rwuser bootstrap priv
      rwuser demo priv
      

      Quando terminar de fazer essas alterações, salve e feche o arquivo.

      Para implementar essas alterações, reinicie o serviço snmpd em seu agent server:

      • sudo systemctl restart snmpd

      O daemon do SNMP escutará conexões na porta :161. Configure o UFW para permitir conexões do manager server para essa porta:

      • sudo ufw allow from manager_server_ip_address to any port 161

      Aprenda mais sobre o UFW em Como configurar um firewall com o UFW no Ubuntu 18.04.

      Agora que o agent server está configurado, conecte-se ao seu agent server a partir do manager server para verificar a conexão.

      Passo 4 — Verificando a autenticação para o servidor agente

      Neste passo, você fará um teste para garantir que é possível se conectar com sua conta bootstrap ao agent server. No entanto, antes disso, este tutorial falará um pouco a respeito da estrutura geral de se enviar um comando do SNMP.

      Ao usar o conjunto de ferramentas incluídas no pacote snmp (o conjunto de software net-snmp), existem alguns padrões na maneira como se deve chamar os comandos. A primeira coisa a fazer é autenticar-se ao daemon do SNMP que você deseja se comunicar. Normalmente, isso envolve fornecer algumas informações. As mais comuns são as seguintes:

      • -v: este sinalizador é utilizado para especificar a versão do protocolo SNMP que você gostaria de usar. Este tutorial utilizará a v3.
      • -c: este sinalizador é usado caso esteja utilizando a cadeia da comunidade no estilo SNMP v1 ou v2 para a autenticação. Como você está usando a autenticação baseada no usuário no estilo v3, não será necessário fazer isso.
      • -u: este parâmetro é usado para especificar o nome de usuário que você deseja usar para se autenticar. Para ler ou modificar qualquer coisa usando o SNMP, você deve autenticar-se com um nome de usuário conhecido.
      • -l: é usado para especificar o nível de segurança ao qual você está se conectando. Os valores possíveis são noAuthNoPriv para não ter autenticação e nem criptografia, authNoPriv para ter a autenticação, mas não ter criptografia e a authPriv para ter a autenticação e a criptografia. O nome de usuário que está usando deve ser configurado para operar no nível de segurança especificado, ou então a autenticação não será bem sucedida.
      • -a: este parâmetro é usado para especificar o authentication protocol utilizado. Os valores possíveis são o MD5 ou o SHA. Essa informação deve corresponder às informações especificadas quando o usuário foi criado.
      • -x: este parâmetro é usado para especificar o encryption protocol utilizado. Os valores possíveis são DES ou AES. Essa informação deve corresponder às informações especificadas quando o usuário foi criado. Issto é necessário sempre que a especificação de privilégios do usuário tiver um priv depois dela, tornando a criptografia obrigatória.
      • -A: é usado para fornecer a senha de autenticação especificada quando o usuário foi criado.
      • -X: esta é a senha da criptografia especificada quando o usuário foi criado. Caso nenhuma senha tenha sido especificada, mas um algoritmo de criptografia tenha sido dado, será utilizada a senha de autenticação. Isso é necessário quando o parâmetro -x é dado ou sempre que a especificação de privilégios de um usuário tiver um priv depois dela, exigindo uma criptografia.

      Ao usar essas informações, é possível construir seus comandos. Dado que você configurou seu usuário bootstrap, os comandos que você usará com essa conta se parecerão a este:

      snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
      

      A partir de seu manager server, faça um teste para garantir que a conta bootstrap está disponível. Digite o seguinte para exibir as informações de sistema para o agent server:

      • snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0

      A string 1.3.6.1.2.1.1.1.0 é a IDO responsável pela exibição das informações do sistema. Ela retornará o resultado do uname -a no sistema remoto.

      Isso dará o seguinte resultado:

      Output

      SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64

      Agora que você verificou que é possível autenticar-se ao servidor executando o daemon do SNMP, continue para criar sua conta de usuário normal.

      Passo 5 — Configurando a conta de usuário normal

      Embora tenha especificado os privilégios para a conta de usuário demo no arquivo snmpd.conf, você ainda não criou este usuário. Neste passo, você utilizará o usuário bootstrap como modelo para seu novo usuário. Você fará isso usando a ferramenta snmpusm, usada para a gestão de usuários.

      No manager server, é possível criar o usuário a partir do modelo, utilizando a ferramenta snmpusm e a seguinte sintaxe geral:

      snmpusm authentication_info agent_server_ip_address create new_user existing_user
      

      Usando o que sabe sobre os sinalizadores de autenticação que você precisa passar e aproveitando a conta de usuário que já tem (bootstrap), crie um usuário que corresponda aos privilégios do usuário que já definiu (demo).

      O comando ficará parecido com este:

      • snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap

      Você receberá a seguinte mensagem:

      Output

      User successfully created.

      Agora, você tem um usuário totalmente funcional chamado demo em seu agent server. No entanto, ele ainda está usando as mesmas informações de autenticação da conta bootstrap. Para aumentar a segurança, modifique a senha para uma outra. Desta vez, você utilizará a conta demo para se autenticar. Lembre-se: senhas devem ter pelo menos oito caracteres:

      • snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password

      Você receberá a seguinte mensagem:

      Output

      SNMPv3 Key(s) successfully changed.

      Teste suas novas credenciais e senha perguntando ao agent server quanto tempo o serviço do SNMP está funcionando. Será utilizado o comando snmpget para obter um valor único do agent server.

      Desta vez,aproveite das definições extras do MIB baixadas para pedir o valor pelo nome, em vez da ID numérica IDO.

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Você receberá um valor que representa a última vez que o daemon remoto do SNMP foi reiniciado:

      Output

      DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53309) 0:08:53.09

      Agora, você tem uma conta de usuário funcional chamada demo. No próximo passo, você simplificará o trabalho com os comandos do SNMP ao configurar o cliente.

      Passo 6 — Criando um arquivo de configuração de Cliente

      Neste ponto, você provavelmente notou que os detalhes de autenticação para todos os seus comandos do SNMP serão bastante estáticos em cada pedido. Em vez de digitá-los toda vez, é possível criar um arquivo de configuração do lado do cliente que terá as credenciais às quais você está se conectando.

      O arquivo de configuração de cliente pode ser colocado em dois locais diferentes, dependendo de como deseja compartilhá-lo.

      Caso queira compartilhar suas credenciais de login com qualquer usuário válido em sua máquina de gerenciamento, você pode colocar seus detalhes de configuração no arquivo global snmp.conf no manager server. Será necessário abrir esse arquivo com privilégios do sudo:

      • sudo nano /etc/snmp/snmp.conf

      No entanto, caso queira definir as credenciais de autenticação para apenas seu usuário, crie um diretório .snmp escondido dentro do diretório home do seu usuário no manager server e crie o arquivo lá:

      • mkdir ~/.snmp
      • nano ~/.snmp/snmp.conf

      Independentemente de sua decisão sobre onde colocar sua configuração, o conteúdo será o mesmo.

      Os comandos que você usará para autenticar estão na tabela a seguir. Na coluna da direita, é possível ver os nomes da diretiva usados para definir esses detalhes de configuração dentro do arquivo snmp.conf:

      Sinalizador de comando Descrição Diretiva snmp.conf traduzida
      -u username O nome de usuário do SNMPv3 para se autenticar. defSecurityName username
      -l authPriv​​​​​​ O nível de segurança para se autenticar. defSecurityLevel authPriv​​​
      -a MD5​​​ O protocolo de autenticação que deve ser usado. defAuthType MD5​​​
      -x DES O protocolo de privacidade (criptografia) que deve ser usado. defPrivType DES​​​
      -A passphrase​​​ A senha de autenticação para o nome de usuário fornecido. defAuthPassphrase passphrase​​​
      -X passphrase​​​ A senha de privacidade do nome de usuário fornecido. defPrivPassphrase passphrase​​​

      Ao usar essas informações, é possível construir um arquivo snmp.conf adequado. Para este guia, ele ficará parecido com isto:

      snmp.conf

      defSecurityName demo
      defSecurityLevel authPriv
      defAuthType MD5
      defPrivType DES
      defAuthPassphrase new_password
      defPrivPassphrase new_password
      

      Quando você terminar, salve e feche o arquivo.

      Agora, é possível emitir comandos sem fornecer os detalhes de autenticação. Será necessário apenas o comando SNMP, o host e os argumentos do comando.

      Em vez de digitar:

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Digite:

      • snmpget agent_server_ip_address sysUpTime.0

      Como pode ver, isso reduz significativamente a quantidade de informações necessárias para se fornecer em cada pedido. A seguir, você removerá a conta bootstrap para reforçar a segurança da rede.

      Passo 7 — Removendo a conta Bootstrap

      Agora que sua conta normal está configurada corretamente, você pode remover a conta bootstrap não segura.

      Em seu agent server, abra novamente o arquivo /etc/snmp/snmpd.conf​​​ com privilégios sudo.

      • sudo nano /etc/snmp/snmpd.conf

      Encontre e deixe como comentário (ou remova) ambas as linhas adicionadas anteriormente que faziam referência ao usuário bootstrap:

      /etc/snmp/snmpd.conf

      ...
      #createUser bootstrap MD5 temp_password DES
      #rwuser bootstrap priv
      ...
      

      Salve e feche o arquivo.

      Agora, reinicie o daemon do SNMP:

      • sudo systemctl restart snmpd

      Isso cumprirá a recomendação de não ter diretivas do tipo createUser no arquivo snmpd.conf normal. Isso também removerá os privilégios desse usuário temporário.

      Caso queira remover completamente o usuário bootstrap do usmUserTable, envie este comando pelo manager server:

      • snmpusm agent_server_ip_address delete bootstrap

      Você receberá a seguinte resposta:

      Output

      User successfully deleted.

      Conclusão

      Neste ponto, você tem uma instalação de cliente-servidor totalmente configurada que consegue se comunicar com segurança usando o protocolo do SNMP. Agora, é possível adicionar daemons adicionais em outros hosts e configurar o acesso de conta em toda sua infraestrutura.

      Para estudar mais a respeito das ferramentas do SNMP e como utilizá-las para recuperar valores um a um ou em massa, e como modificar dados, utilize nosso tutorial sobre Como utilizar o conjunto de ferramentas Net-SNMP para gerenciar e monitorar servidores.



      Source link

      Como Usar o Doctl, o Cliente de Linha de comandos Oficial da DigitalOcean


      Uma versão anterior deste tutorial foi escrita por Brennen Bearnes.

      Introdução

      O painel de controle web da DigitalOcean fornece uma interface de gerenciamento de Droplets usando apontar e clicar . No entanto, você pode preferir uma ferramenta de linha de comando se tiver muitos Droplets para gerenciar, precisar administrar Droplets a partir do terminal sem uma área de trabalho gráfica disponível ou tiver tarefas que se beneficiariam de uma interface com script.

      doctl é o cliente oficial de linha de comandos da DigitalOcean. Ele utiliza a API da DigitalOcean para fornecer acesso à maioria dos recursos da conta e dos Droplets.

      Pré-requisitos

      Para seguir este tutorial, você precisará de:

      Este tutorial pretende ser uma referência para a maioria das operações do doctl. Como os comandos doctl são intimamente ligados à API, também pode ser útil ler a documentação da API e Como Usar a API da DigitalOcean v2.

      Uso Genérico do doctl

      Executando Comandos

      No doctl, os recursos individuais são executados, fornecendo ao utilitário um comando, um ou mais subcomandos e, às vezes, uma ou mais opções que especificam valores particulares. Os comandos são agrupados em três categorias principais:

      • account para informações relacionadas à conta
      • auth para autenticação com a DigitalOcean
      • compute para o gerenciamento de infraestrutura

      Para ver uma visão geral de todos os comandos, você pode chamar o doctl por si só. Para ver todos os comandos disponíveis em uma das três categorias principais, você pode usar doctl categoria, como doctl compute. Para um guia de uso de um comando específico, digite o comando com a flag --help, como em doctl compute droplet --help.

      Recuperando Dados no Formato JSON

      Em ambientes de script, ou ao trabalhar na linha de comando com ferramentas de processamento de dados, geralmente é útil obter uma saída legível por máquina a partir de um comando.

      Por padrão, o doctl formata sua saída em colunas de texto legível por humanos, mas pode produzir uma saída JSON detalhada usando a opção --output json.

      • doctl compute droplet get droplet_id --output json

      Sample Output

      { "id": droplet_id, "name": "nome_do_droplet", "memory": 1024, "vcpus": 1, "disk": 30, "region": { "slug": "nyc3", "name": "New York 3", "sizes": [ ...

      Além de ser um formato legível com bibliotecas padrão na maioria das linguagens de programação, a saída JSON pode permitir uma inspeção mais detalhada dos Droplets e de outros recursos.

      Formatação

      Geralmente, é útil obter apenas um conjunto de campos da saída. Para fazer isso, você pode usar a flag --format, que pega a lista de campos pelo seu nome. Por exemplo, se você deseja obter apenas o ID, nome e endereço IP dos seus Droplets, você pode usar o seguinte comando:

      • doctl compute droplet list --format "ID,Name,PublicIPv4"

      Sample output

      ID Name Public IPv4 50513569 doctl-1 67.205.152.65 50513570 test 67.205.148.128 50513571 node-1 67.205.131.88

      Templates

      O comando doctl compute droplet get suporta template de saída, o que lhe permite personalizar o formato da saída. Para usar esse recurso, especifique o template formatado para Go via a flag --template

      Por exemplo, se você deseja obter o nome de um Droplet no formato droplet_name: nome_do_droplet, use o seguinte comando get:

      • doctl compute droplet get 12345678 --template "nome_do_droplet: {{ .Name}}"

      Output

      nome_do_droplet: ubuntu-1gb-nyc3-01

      Listando Recursos

      Para obter uma lista de recursos, como Droplets, você pode usar o comando list sem parâmetros.

      • doctl compute droplet list

      Sample output for list command

      ID Name Public IPv4 Private IPv4 Public IPv6 Memory VCPUs Disk Region Image Status Tags 50513569 test-1 67.205.152.65 512 1 20 nyc1 Ubuntu 16.04.2 x64 active 50513571 test-2 67.205.131.88 512 1 20 nyc1 Ubuntu 16.04.2 x64 active 50513570 site 67.205.148.128 512 1 20 nyc1 Ubuntu 16.04.2 x64 active

      O comando list suporta um glob como um parâmetro opcional. Um glob representa um padrão com caracteres curinga que podem ser usados para filtrar recursos específicos por nome. Por exemplo, para obter uma lista de Droplets cujos nomes começam com test, você pode usar o seguinte comando:

      doctl compute droplet list 'test*'
      

      Sample output for list command with 'doctl-' as glob

      ID Name Public IPv4 Private IPv4 Public IPv6 Memory VCPUs Disk Region Image Status Tags 50513569 test-1 67.205.152.65 512 1 20 nyc1 Ubuntu 16.04.2 x64 active 50513571 test-2 67.205.131.88 512 1 20 nyc1 Ubuntu 16.04.2 x64 active

      Criando Recursos

      Criar um recurso requer comandos mais longos com parâmetros mais detalhados. Para criar um Droplet, você precisará especificar a imagem que deseja usar, a região do datacenter e o tipo de Droplet que deseja usando o slug associado. Veja New Size Slugs for Droplet Plan Changes
      para encontrar o slug que você quer usar. Como alternativa, execute o comando doctl compute size list.

      Por exemplo, o comando a seguir cria um Droplet Debian 8 de 64 bits chamado test com 1 GB de memória, uma CPU, uma chave SSH e backups ativados.

      • doctl compute droplet create test --size s-1vcpu-1gb --image debian-8-x64 --region nyc1 --ssh-keys 4d:23:e6:e4:8c:17:d2:cf:89:47:36:b5:c7:33:40:4e --enable-backups

      Você verá esta saída:

      Sample Droplet creation output

      ID Name Public IPv4 Memory VCPUs Disk Region Image Status 11450164 test 1024 1 30 nyc1 Debian 8.3 x64 new

      A exclusão de um recurso requer um ID de recurso como argumento ou um nome de recurso no caso de não existir um ID para determinado recurso (por exemplo, tags). Para confirmar suas intenções, você precisa confirmar todas as ações de exclusão, respondendo à pergunta de confirmação com y ou yes.

      doctl compute droplet delete 123456
      

      Output

      Warning: Are you sure you want to delete droplet(s) (y/N) ?

      Não fornecer uma resposta ou fornecer uma resposta diferente de y ou yes cancelará a ação sem excluir o recurso. Você pode fazer com que o doctl assuma uma resposta afirmativa sem fornecê-la explicitamente, usando a flag -f (--force):

      doctl compute droplet delete -f 123456
      

      Localizando Identificadores Exclusivos para Recursos

      O comando de criação de Droplets requer uma série de identificadores, como nyc1 para a região NYC1, debian-8-x64 para a imagem Debian e uma impressão digital ou fingerprint da chave SSH como 4d:23:e6:e4:8c:17:d2:cf:89:47:36:b5:c7:33:40:4e.

      Vários recursos, como Droplets e imagens, são identificados por um valor (geralmente numérico) exclusivo no banco de dados da DigitalOcean.

      Você pode obter os identificadores exclusivos necessários para a maioria dos comandos da API:

      Comando Notas
      doctl compute droplet list Seus Droplets. Alguns comandos também levam o nome; a maioria exige o valor numérico da coluna ID.
      doctl compute ssh-key list As chaves SSH associadas à sua conta. Para a criação de Droplets, você pode especificar o ID numérico ou fingerprint.
      doctl compute region list Regiões disponíveis. Use a string na coluna Slug.
      doctl compute image list Imagens disponíveis, incluindo snapshots, backups e imagens base de distribuição. Use a string na coluna Slug para a criação de novos Droplets.
      doctl compute size list Tamanhos de Droplets disponíveis. Use a string na coluna Slug.
      doctl compute tag list Tags disponíveis. Use a string na coluna Name.

      Criando, Excluindo, e Inspecionando Droplets

      O comando doctl compute droplet lhe permite criar, excluir e inspecionar Droplets. Novamente, a maioria dos comandos para trabalhar com Droplets individuais exige o ID exclusivo do Droplet, e estes podem ser encontrados na saída do comando doctl droplet list.

      Subcomando doctl compute droplet Notas
      actions droplet_id Exibir um histórico de ações executadas para um Droplet.
      backups droplet_id Listar backups para um Droplet.
      create name --size s-1vcpu-1gb --image image_slug --region nyc1 Criar um Droplet. Tamanho, imagem e região são todos obrigatórios.
      delete droplet_id_ou_nome Excluir um Droplet por ID ou nome.
      get droplet_id Obter detalhes de um Droplet específico.
      kernels droplet_id Listar kernels para um Droplet.
      list Listar seus Droplets atuais.
      neighbors droplet_id Listar seus Droplets em execução no mesmo hardware físico que um Droplet específico.
      snapshots droplet_id Listar snapshots para um Droplet.
      tag droplet_id/nome_do_droplet Colocar uma Tag em um Droplet.
      untag droplet_id/nome_do_droplet Retirar uma tag de um Droplet.

      Iniciando Ações em Droplets

      O comando doctl compute droplet-action lhe permite disparar várias ações para um Droplet, incluindo ações de gerenciamento de energia e alternância de recursos como backups e redes privadas.

      Subcomando doctl compute droplet-action Notas
      get droplet_id --action-id action_id Obter detalhes sobre a ação em um Droplet.
      disable-backups droplet_id Desativar backups para um Droplet.
      reboot droplet_id Reiniciar um Droplet.
      power-cycle droplet_id Desligar e ligar novamente um Droplet.
      shutdown droplet_id Desligar um Droplet.
      power-off droplet_id Desligar um Droplet. O Droplet deve estar ligado. Geralmente, é melhor fazer isso na linha de comando do próprio Droplet para evitar perda de dados.
      power-on droplet_id Ligue um Droplet. O Droplet deve estar desligado.
      power-reset droplet_id Resetar um Droplet.
      enable-ipv6 droplet_id Ativar ipv6 para um Droplet.
      enable-private-networking droplet_id Ativar rede privada para um Droplet.
      upgrade droplet_id Fazer upgrade de um Droplet.
      restore droplet_id --image-id image_id Restaurar um Droplet para uma imagem de backup específica. O image_id deve ser um backup do Droplet.
      resize droplet_id --size 2gb Redimensionar um Droplet. O Droplet deve estar desligado. Por padrão, o disco não é redimensionado, o que permite que o Droplet seja rebaixado. Você pode redimensionar o disco usando a flag --resize-disk.
      rebuild droplet_id --image-id image_id Reconstruir um Droplet a partir de uma imagem específica.
      rename droplet_id --droplet-name novo_nome Renomear um Droplet para novo_nome.
      change-kernel droplet_id --kernel-id kernel_id Alterar o kernel de um Droplet para kernel_id.
      snapshot droplet_id --snapshot-name nome_do_snapshot Tirar um instantâneo ou snapshot de um Droplet, nomeando-o como nome_do_snapshot.

      Fazendo Conexões SSH

      Para se conectar a um Droplet individual com SSH, geralmente é necessário saber seu endereço IP ou nome de domínio totalmente qualificado. Você pode usar o doctl para se conectar a um Droplet pelo seu nome, ID numérico ou IP privado:

      • doctl compute ssh nome_do_droplet
      • doctl compute ssh droplet_id
      • doctl compute ssh --ssh-private-ip ip_privado_do_droplet

      Além disso, você pode fornecer um comando para executar assim que a conexão SSH for estabelecida usando a flag --ssh-command. Isso executará o comando, cuja saída será impressa no seu terminal local, e então a sessão SSH será fechada.

      • doctl compute ssh --ssh-command comando

      Nota: No momento, o encaminhamento de comandos SSH não está disponível no Windows.

      O nome do usuário SSH padrão é root (core para o CoreOS) e a porta padrão é a 22. Você pode usar flags para definir valores não padrão e ativar outros recursos:

      Flag Descrição
      --ssh-user string Nome de usuário a ser usado para a sessão SSH.
      --ssh-port int A porta para a sessão SSH.
      --ssh-key-path string Caminho para a chave SSH.
      --ssh-agent-forwarding Ativar encaminhamento de agente.

      Você também pode alterar os valores de configuração padrão em um arquivo de configuração. O arquivo README do projeto tem mais detalhes sobre como fazer isso.

      Usando Chaves SSH

      Você pode gerenciar as chaves públicas SSH associadas à sua conta usando o comando doctl compute ssh-key. A maioria dos comandos que fazem referência às chaves SSH aceitam o ID numérico da chave ou sua fingerprint.

      Subcomando doctl compute ssh-key Notas
      list Listar chaves SSH associadas à sua conta.
      get ssh_key_id_ou_fingerprint Obter informações sobre uma chave específica, por ID numérico ou fingerprint da chave.
      create novo_nome_da_chave --public-key "chave_pública" Associar uma chave pública à sua conta, especificando seu conteúdo.
      import novo_nome_da_chave --public-key-file ~/.ssh/id_rsa.pub Associar uma chave pública à sua conta especificando um arquivo de origem.
      delete ssh_key_id_ou_fingerprint Excluir uma chave da sua conta por ID numérico ou fingerprint.
      update ssh_key_id_ou_fingerprint --key-name novo_nome_da_chave Alterar o nome de uma chave por ID numérico ou fingerprint.

      Um IP flutuante é um endereço IP estático acessível ao público que pode ser atribuído a um de seus Droplets. Para uma descrição detalhada do recurso, você pode ler Como usar IPs flutuantes na DigitalOcean. Você pode manipular IPs flutuantes com doctl compute floating-ip.

      Subcomando doctl compute floating-ip Notas
      list Listar todos os endereços IP flutuantes.
      get endereço_ip_flutuante Obter detalhes de um endereço IP flutuante.
      create --region nyc1 Crie um IP flutuante na região nyc1.
      delete endereço_ip_flutuante Excluir um endereço IP flutuante.

      Atribuir IPs Flutuantes aos Droplets

      O comando doctl compute floating-ip-action é usado para atribuir ou cancelar a atribuição de um IP flutuante de um Droplet.

      Subcomando doctl compute floating-ip-action Notas
      assign ip_flutuante droplet_id Atribuir um IP flutuante ao Droplet pelo seu ID numérico.
      unassign ip_flutuante Cancelar a atribuição de um IP flutuante.
      get ip_flutuante action_id Obter detalhes sobre uma ação de IP flutuante pelo seu ID numérico.

      Trabalhando com Domains

      O comando doctl compute domain é usado para gerenciar domínios. Veja nossa Série de Introdução ao gerenciamento de DNS para uma visão geral mais ampla do assunto.

      Subcomando doctl compute domain Notas
      list Listar domínios.
      create nome_de_domínio --ip-address endereço_ip_do_droplet Criar um domínio com registros padrão para endereço_ip_do_droplet.
      get nome_de_domínio Obter um registro de domínio.
      delete nome_de_domínio Excluir um domínio.

      Gerenciando Registros de Domínio

      O comando doctl compute domain records pode ser usado para criar, excluir, atualizar ou obter informações sobre os registros DNS do domínio.

      Subcomando doctl compute domain records Notas
      list nome_de_domínio Listar registros para determinado domínio.
      create nome_de_domínio --record-type tipo_de_registro Criar um registro para o domínio.
      delete nome_de_domínio record_id Excluir registro pelo ID numérico.
      update nome_de_domínio --record-id record_id Atualizar registro pelo ID numérico.

      Criando, Excluindo e Inspecionando Volumes de Armazenamento em Bloco

      O comando doctl compute volume pode ser usado para criar, excluir ou obter informações sobre os volumes de armazenamento em bloco da DigitalOcean. Para obter mais informações sobre esse recurso, leia nosso guia Como usar o armazenamento em bloco na DigitalOcean.

      Subcomando doctl compute volume Notas
      list Listar volumes.
      create nome_do_volume --region região_do_volume --size tamanho_do_volume Criar um volume. O nome, região e tamanho são obrigatórios.
      get volume_ID Obter volume pelo ID numérico.
      delete volume_ID Excluir volume.
      snapshot volume_ID Fazer um Snapshot de um volume.

      Iniciando Ações de Volume

      O comando doctl compute volume-action lhe permite disparar ações para um volume, incluindo anexar volumes e desanexar volumes de Droplets.

      Subcomando doctl compute volume-action Notas
      attach volume_id droplet_id Anexar um volume a um Droplet.
      detach volume_id droplet_id Desanexar um volume de um Droplet.
      resize volume_id --region região_do_volume --size novo_tamanho Redimensionar um volume.

      O comando doctl compute load-balancer pode ser usado para criar, excluir ou obter informações sobre os balanceadores de carga ou Load Balancers da DigitalOcean. Para obter mais informações sobre esse recurso, leia nossa Introdução aos balanceadores de carga da DigitalOcean.

      Subcomando doctl compute load-balancer Notas
      list Listar load balancers.
      create --name nome_do_lb --region região_do_lb --tag-name nome_da_tag --forwarding-rules regra_de_encaminhamento Criar um Load Balancer. O nome, a região, uma tag ou lista de IDs de Droplets e pelo menos uma regra de encaminhamento são obrigatórios.
      update --name nome_do_lb --region região_do_lb --tag-name nome_da_tag --forwarding-rules regra_de_encaminhamento Atualizar um Load Balancer. O nome, a região, uma tag ou lista de IDs de Droplets e pelo menos uma regra de encaminhamento são obrigatórios.
      get lb_ID Obter um load balancer pelo ID.
      delete lb_ID Excluir um load balancer pelo ID.
      add-droplets lb_ID --droplet-ids droplet_ID Adicionar Droplets a um load balancer.
      remove-droplets lb_ID --droplet-ids droplet_ID Remover Droplets de um load balancer.
      add-forwarding-rules lb_ID --forwarding-rules regra_de_encaminhamento Adicionar regras de encaminhamento a um load balancer.
      remove-forwarding-rules lb_ID --forwarding-rules regra_de_encaminhamento Remover regras de encaminhamento de um load balancer.

      Quando usado como argumento para o doctl, as regras de encaminhamento devem ser expressas como: entry_protocol:protocolo,entry_port:porta,target_protocol:protocolo,target_port:porta.

      Gerenciando Certificados

      O subcomando doctl compute certificate lhe permite fazer upload e gerenciar certificados SSL, chaves privadas e cadeias de certificados.

      Subcomando doctl compute certificate Notas
      list Listar todos os certificados.
      get certificate_id Obter um certificado pelo ID.
      create --name nome_do_certificado --leaf-certificate-path caminho_do_cetrificado_em_folha Criar um certificado. O nome e o caminho do certificado em folha são obrigatórios.
      delete certificate_id Excluir um certificado pelo ID.

      O comando doctl compute snapshot pode ser usado para listar, excluir ou obter informações sobre snapshots de Droplet e de Volume.

      Subcomando doctl compute snapshot Notas
      list Listar todos os Snapshots.
      get snapshot_ID Obter um Snapshot pelo ID.
      delete snapshot_ID Excluir um Snapshot.

      Para criar um novo Snapshot, você precisa usar o comando apropriado na árvore de comandos do recurso relevante. Por exemplo:

      • doctl compute droplet-action snapshot droplet_ID cria um Snapshot de um Droplet.
      • doctl compute volume snapshot volume_ID cria um Snapshot de um Volume.

      O comando doctl compute image lhe permite gerenciar todas as imagens, incluindo imagens de distribuição, imagens de aplicações e imagens criadas pelo usuário, como backups e snapshots. Recomendamos o uso do comando snapshot para gerenciar snapshots, pois ele fornece mais detalhes, possui funcionalidade de exclusão e suporta snapshots de Armazenamento em Bloco.

      Subcomando doctl compute image Notas
      list --public Listar todas imagens.
      list-distribution --public Listar todas imagens de distribuição disponíveis
      list-application --public Listar todas as imagens de Aplicações de Um Clique.
      list-user Listar todas as imagens criadas pelo usuário.
      get image_id Obter uma imagem pelo ID.
      update image_id --name nome_da_imagem Atualizar o nome da imagem. O nome é obrigatório.
      delete image_id Excluir uma imagem pelo ID.

      Chamando Ações de Imagens

      O comando doctl compute image-action lhe permite transferir imagens e obter detalhes sobre as ações invocadas nas imagens.

      Subcomando doctl compute image-action Notas
      get image_id --action-id action_id Obter uma ação para a imagem pelo seu ID. O ID da ação é obrigatório.
      transfer image_id --region região Transferir uma imagem para outra região. O ID da imagem e a região são obrigatórios.

      O comando doctl compute firewall lhe permite criar e gerenciar Firewalls, incluindo a criação e a manutenção de regras. Para obter mais informações sobre como administrar Firewalls usando o doctl, consulte o tutorial How To Secure Web Server Infrastructure With DigitalOcean Cloud Firewalls Using Doctl.

      Comando doctl compute firewall Notas
      list Listar todos os Firewalls.
      list-by-droplet droplet_id Listar todos os Firewalls pelo ID numérico do Droplet.
      create --name nome_do_firewall --inbound-rules regras_de_entrada --outbound-rules regras_de_saída Criar um Firewall. O nome e pelo menos uma regra de entrada ou saída são obrigatórios.
      update firewall_id --name nome_do_firewall --inbound-rules regras_de_entrada --outbound-rules regras_de_saída Atualizar um Firewall. O ID numérico, o nome e pelo menos uma regra de entrada ou saída são obrigatórios.
      get firewall_id Obter um Firewall pelo seu ID numérico.
      delete firewall_id Excluir um firewall pelo ID numérico.
      add-droplets firewall_id --droplet-ids droplet_IDs Adicionar Droplets pelo seu ID numérico ao Firewall.
      remove-droplets firewall_id --droplet-ids droplet_IDs Remover Droplets do Firewall pelos seus IDs numéricos.
      add-tags firewall_id --tag-names tags Adicionar Tags ao Firewall.
      remove-tags firewall_id --tag-names tags Remover Tags do Firewall.
      add-rules firewall_id --inbound-rules regras_de_entrada --outbound-rules regras_de_saída Adicionar regras de entrada ou saída ao Firewall.
      remove-rules firewall_id --inbound-rules regras_de_entrada --outbound-rules regras_de_saída Remover as regras de entrada ou saída do Firewall.

      Quando usado como argumento para o doctl, as regras de entrada ou saída devem ser expressas como: protocol:protocolo,ports:portas,droplet_id:droplet-id.

      As Tags são usadas para aplicar rótulos personalizados aos recursos, permitindo que você os filtre facilmente. Você pode aprender mais sobre Tags no tutorial How To Tag DigitalOcean Droplets.

      Subcomando doctl compute tag Notas
      create nome_da_tag Criar uma Tag.
      get nome_da_tag Obter uma Tag pelo nome.
      list Listar todas as Tags.
      delete nome_da_tag Excluir uma Tag pelo nome.

      Lendo o Histórico de Ações da sua Conta

      O sistema da DigitalOcean registra um histórico das ações executadas em seus Droplets, IPs flutuantes e outros recursos. Você pode acessar esses dados com o comando doctl compute action:

      • doctl compute action list

      Você pode ver ações para um Droplet específico da seguinte maneira:

      • doctl compute droplet actions droplet_id

      Recuperando Informações da sua Conta

      Você pode descobrir detalhes básicos sobre sua conta, como seu endereço de e-mail configurado e o limite de Droplet:

      Como as solicitações de API são limitadas por uma taxa de acessos, pode ser útil ver quantas solicitações você fez recentemente e quando o limite deve ser redefinido:

      Conclusão

      O utilitário doctl é uma ferramenta útil para gerenciar Droplets e outros recursos na linha de comando. Isso pode reduzir bastante a quantidade de interação manual com interfaces baseadas em web, necessárias para tarefas diárias de desenvolvimento e de administração.

      Além de aprender sobre a API subjacente, você pode querer explorar bibliotecas que envolvem a API para linguagens de programação populares, e ferramentas como Ansible para automatizar tarefas no nível do sistema.



      Source link