├── Data&AI ├── Cheguei_Atrasado │ ├── images │ │ ├── image01.PNG │ │ ├── image02.PNG │ │ ├── image03.PNG │ │ ├── image04.PNG │ │ ├── image05.PNG │ │ ├── image06.PNG │ │ ├── image07.PNG │ │ ├── image08.PNG │ │ ├── image09.PNG │ │ ├── image10.PNG │ │ ├── image11.PNG │ │ ├── image12.PNG │ │ └── image13.PNG │ ├── readme.md │ └── tf-ociFastTrack-Linuxtips.zip ├── airbnb-listings-rio.csv ├── df_airbnb-rio.py ├── images │ ├── image01.PNG │ ├── image02.PNG │ ├── image03.PNG │ ├── image04.PNG │ ├── image05.PNG │ ├── image06.PNG │ ├── image07.PNG │ ├── image08.PNG │ ├── image09.PNG │ ├── image10.PNG │ ├── image11.PNG │ ├── image12.PNG │ ├── image13.PNG │ ├── image14.PNG │ ├── image15.PNG │ ├── image16.PNG │ ├── image17.PNG │ ├── image18.PNG │ └── image19.PNG └── readme.md ├── DevApp ├── README.md ├── nginx_lb.yaml └── terraform │ ├── apigateway.tf │ ├── datasources.tf │ ├── functions.tf │ ├── iam-output.tf │ ├── iam.tf │ ├── oke-output.tf │ ├── oke.tf │ ├── providers.tf │ ├── schema.yaml │ ├── terraform.zip │ ├── variable.tf │ ├── vcn-output.tf │ ├── vcn-variables.tf │ └── vcn.tf ├── Infrastructure ├── AutonomousDatabase │ └── Lab5 - Autonomous Database.pdf ├── Compartments │ └── Lab 1 - Compartiments.pdf ├── Networking │ └── Lab 2 - Networking.pdf ├── README.md ├── Storage │ ├── README.md │ ├── images │ │ ├── Picture1.png │ │ ├── Picture10.png │ │ ├── Picture11.png │ │ ├── Picture12.png │ │ ├── Picture13.jpg │ │ ├── Picture14.png │ │ ├── Picture15.png │ │ ├── Picture16.png │ │ ├── Picture17.png │ │ ├── Picture18.png │ │ ├── Picture19.png │ │ ├── Picture2.png │ │ ├── Picture20.png │ │ ├── Picture21.png │ │ ├── Picture22.png │ │ ├── Picture23.png │ │ ├── Picture24.png │ │ ├── Picture25.png │ │ ├── Picture26.png │ │ ├── Picture3.png │ │ ├── Picture4.png │ │ ├── Picture5.png │ │ ├── Picture6.png │ │ ├── Picture7.png │ │ ├── Picture8.png │ │ ├── Picture9.png │ │ ├── fs01.png │ │ ├── fs02.png │ │ ├── fs03.png │ │ ├── fs04.png │ │ ├── fs05.png │ │ ├── fs06.png │ │ ├── fs07.png │ │ ├── fs08.png │ │ ├── fs09.png │ │ ├── fs10.png │ │ ├── fs11.png │ │ ├── fs12.png │ │ ├── linuxtips.png │ │ ├── objstorage.png │ │ ├── oci-fc.png │ │ └── teste.md │ └── media │ │ ├── Image1.png │ │ └── index.html └── compute │ ├── LinuxTips-tf │ ├── compartment.tf │ ├── compute.tf │ ├── database.tf │ ├── main.tf │ ├── main.yaml │ ├── network.tf │ └── storage.tf │ └── README.md ├── MonitoringEventsNotifications ├── README.md └── images │ ├── item1.png │ ├── item10.png │ ├── item11.png │ ├── item13.png │ ├── item14.png │ ├── item15.png │ ├── item16.png │ ├── item17.png │ ├── item18.png │ ├── item19.png │ ├── item2.png │ ├── item20.png │ ├── item21.png │ ├── item22.png │ ├── item23.png │ ├── item25.png │ ├── item26.png │ ├── item27.png │ ├── item29.png │ ├── item3.png │ ├── item30.png │ ├── item33.png │ ├── item34.png │ ├── item37.png │ ├── item38.png │ ├── item40.png │ ├── item41.png │ ├── item42.png │ ├── item44.png │ ├── item46.png │ ├── item48.png │ ├── item49.png │ ├── item5.png │ ├── item50.png │ ├── item6.png │ ├── item7.png │ └── item9.png └── README.md /Data&AI/Cheguei_Atrasado/images/image01.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image01.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image02.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image02.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image03.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image03.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image04.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image04.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image05.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image05.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image06.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image06.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image07.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image07.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image08.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image08.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image09.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image09.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image10.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image10.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image11.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image11.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image12.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image12.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/images/image13.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/images/image13.PNG -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/readme.md: -------------------------------------------------------------------------------- 1 | # **Este é o guia para o Lab de Data & AI para aqueles que chegaram atrasados na sessão** 2 | Caso você não esteja atrasado acompanhe o guia complexo do Lab [aqui](./data_ai/readme.md) 3 | 4 | **Resource Manager** 5 | 6 | Serviço que permite a automatização do provisionamento de infraestrutura no OCI através de Terraform. 7 | 8 | Pode ser utilizando tanto para importar e criar uma infraestrutura nova de arquivos Terraform, quanto para exportar, como arquivos Terraform, uma estrutura já configurada em um determinado compartimento. 9 | 10 | Através dele é possível realizar os jobs do Terraform: Plan, Apply, Destroy e Import State. 11 | 12 | Documentação: https://docs.oracle.com/en-us/iaas/Content/ResourceManager/home.htm 13 | 14 | **Pré-requisito: Namespace do Object Storage** 15 | 16 | Nesta etapa, coletar o Namespace do object storage do seu ambiente. Esta informação é bastante relevante, pois será utilizada nas etapas de configuração do nosso script python. 17 | 18 | Para visualizar e anotar o Namespace do seu ambiente, acesse o menu com seu avatar de usuário no canto superior direito, e clique no nome do seu Tenancy: 19 | 20 | ![](images/image01.PNG) 21 | 22 | Agora nas informações do seu Tenancy, podemos encontrar e tomar nota do Object storage Namespace. 23 | 24 | ![](images/image02.PNG) 25 | 26 | **Reserve o Namespace em um notepad ou editor de sua preferência. Vamos utilizar na próxima etapa** 27 | 28 | **Demonstração** 29 | 30 | Importar as configurações de Terraform para o resource manager e executar os jobs de Plan e Apply. 31 | 32 | _Download_ 33 | 34 | Faça o download do arquivo .zip aqui. 35 | 36 | Em seguida descompacte o arquivo e localiza o arquivo chamado: **df\_airbnb-rio.py** em seguida abra o arquivo com o editor de texto de sua preferência. 37 | 38 | ![](images/image03.PNG) 39 | 40 | Localize o campo _namespace_ e substitua o valor entre aspas simples pelo Namespace do Object Storage da sua Tenancy que você havia reservado na etapa anterior. 41 | 42 | Após isso salve o arquivo e compacte novamente os arquivos como indicado na imagem abaixo: 43 | 44 | ![](images/image04.PNG) 45 | 46 | Navegue no menu do OCI Developer -> Services Resource Manager -> Stacks 47 | 48 | ![](images/image05.PNG) 49 | 50 | Crie uma nova Stack 51 | 52 | ![](images/image06.PNG) 53 | 54 | Selecionando My Configuration, Zip File e selecione o arquivo zip que você acabou de configurar na etapa anterior. Em seguida clique em Next 55 | 56 | ![](images/image07.PNG) 57 | 58 | Verifique se o Compartment correto está selecionado e clique em Next novamente 59 | 60 | ![](images/image08.PNG) 61 | 62 | Em seguida selecione "Run Apply" e clique em create. 63 | 64 | ![](images/image09.PNG) 65 | 66 | 67 | Pronto! Seus recursos serão provisionados 68 | 69 | ![](images/image10.PNG) 70 | 71 | Após completar as etapas, acesso o recurso de Data Flow e verifique a execução de sua aplicação Spark no Data Flow. Menu de Serviços -> Analytics & AI -> Data Flow. 72 | 73 | Ao final da tela, clique na execução 74 | 75 | ![](images/image11.PNG) 76 | 77 | Aguarde o término da execução. Quando concluída, no canto inferior esquerdo clique em logs. Em seguida clique no resultado da execução com o nome de "spark_application_stdout.log.gz" 78 | 79 | ![](images/image12.PNG) 80 | 81 | Uma nova aba deve ser aberta com o conteúdo dos dados processado. Caso não seja aberta uma nova aba com o conteúdo, mas seja realizado o download do arquivo, abra-o em algum editor de texto de sua preferência. Para ambos os casos o resultado da saída deve ser semelhante ao abaixo: 82 | 83 | ![](images/image13.PNG) 84 | 85 | Com isso concluímos este lab. -------------------------------------------------------------------------------- /Data&AI/Cheguei_Atrasado/tf-ociFastTrack-Linuxtips.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/Cheguei_Atrasado/tf-ociFastTrack-Linuxtips.zip -------------------------------------------------------------------------------- /Data&AI/df_airbnb-rio.py: -------------------------------------------------------------------------------- 1 | from pyspark.sql import SparkSession 2 | 3 | 4 | def main(): 5 | # Create a Spark session 6 | spark = SparkSession \ 7 | .builder \ 8 | .appName("Python Spark SQL basic example") \ 9 | .getOrCreate() 10 | 11 | # Load a csv file from dataflow public storage 12 | bucket_name = 'raw-data' 13 | file_name = 'airbnb-listings-rio.csv' 14 | namespace = 'xxxxxxxxxxxx' #TODO Change for your tenancy namespace value 15 | 16 | df = spark \ 17 | .read \ 18 | .format("csv") \ 19 | .option("header", "true") \ 20 | .option("multiLine", "true") \ 21 | .load(f"oci://{bucket_name}@{namespace}/{file_name}") 22 | 23 | # Create a temp view and do some SQL operations 24 | df.createOrReplaceTempView("rio") 25 | query_result_df = spark.sql(""" 26 | SELECT 27 | room_type, 28 | price, 29 | CONCAT(latitude,',', longitude) AS lat_long 30 | FROM rio 31 | """) 32 | 33 | # Convert the filtered Spark DataFrame into JSON format 34 | # Note: we are writing to the spark stdout log so that we can retrieve the log later at the end of the notebook. 35 | print('\n'.join(query_result_df.toJSON().collect())) 36 | 37 | 38 | if __name__ == '__main__': 39 | main() 40 | -------------------------------------------------------------------------------- /Data&AI/images/image01.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image01.PNG -------------------------------------------------------------------------------- /Data&AI/images/image02.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image02.PNG -------------------------------------------------------------------------------- /Data&AI/images/image03.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image03.PNG -------------------------------------------------------------------------------- /Data&AI/images/image04.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image04.PNG -------------------------------------------------------------------------------- /Data&AI/images/image05.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image05.PNG -------------------------------------------------------------------------------- /Data&AI/images/image06.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image06.PNG -------------------------------------------------------------------------------- /Data&AI/images/image07.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image07.PNG -------------------------------------------------------------------------------- /Data&AI/images/image08.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image08.PNG -------------------------------------------------------------------------------- /Data&AI/images/image09.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image09.PNG -------------------------------------------------------------------------------- /Data&AI/images/image10.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image10.PNG -------------------------------------------------------------------------------- /Data&AI/images/image11.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image11.PNG -------------------------------------------------------------------------------- /Data&AI/images/image12.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image12.PNG -------------------------------------------------------------------------------- /Data&AI/images/image13.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image13.PNG -------------------------------------------------------------------------------- /Data&AI/images/image14.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image14.PNG -------------------------------------------------------------------------------- /Data&AI/images/image15.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image15.PNG -------------------------------------------------------------------------------- /Data&AI/images/image16.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image16.PNG -------------------------------------------------------------------------------- /Data&AI/images/image17.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image17.PNG -------------------------------------------------------------------------------- /Data&AI/images/image18.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image18.PNG -------------------------------------------------------------------------------- /Data&AI/images/image19.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Data&AI/images/image19.PNG -------------------------------------------------------------------------------- /Data&AI/readme.md: -------------------------------------------------------------------------------- 1 | # **Este é o guia para o Lab de Data & AI** 2 | Caso você esteja chegando atrasado para este Lab e não pegou o início da sessão clique [aqui](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/blob/main/Data%26AI/Cheguei_Atrasado/readme.md) 3 | 4 | 5 | ## **Pré-requisitos** 6 | 7 | Nesta etapa criar alguns recursos necessários para a criação do Data Flow Application. 8 | 9 | ## Verificação dos buckets necessários 10 | 11 | Verifique se você possui os seguintes buckets no object storage 12 | 13 | - dataflow-logs 14 | - dataflow-warehouse 15 | - raw-data 16 | 17 | Acesse ao **menu** **-> Storage -> Buckets**. Em seguida verifique se você está no compartment correto (Compartimento-Trial) e lá você a lista com os seues buckets 18 | 19 | ![](images/image01.PNG) 20 | 21 | ## Verificação da VCN 22 | 23 | Verifique se a sua VCN está criada 24 | 25 | Acesse ao **menu** **-> Networking -> Virtual Cloud Networks**. Em seguida verifique se você está no compartment correto (Compartimento-Trial) e lá você verá a sua VCN (VCN-Trial) 26 | 27 | ![](images/image02.PNG) 28 | 29 | ## Identificação do Namespace do object storage 30 | 31 | Nesta etapa, coletar o Namespace do object storage do seu ambiente. Esta informação é bastante relevante, pois será utilizada nas etapas de configuração do nosso script python. 32 | 33 | Para visualizar e anotar o Namespace do seu ambiente, acesse o menu com seu avatar de usuário no canto superior direito, e clique no nome do seu Tenancy: 34 | 35 | ![](images/image03.PNG) 36 | 37 | Agora nas informações do seu Tenancy, podemos encontar e tomar nota do Object storage Namespace. 38 | 39 | **Guarde o nome do Namespace em um notepad ou editor de sua preferência.** 40 | 41 | ![](images/image04.PNG) 42 | 43 | ## Download dos arquivos utilizados 44 | 45 | Durante este LAB iremos utilizar dos arquivos, o script python **df\_airbnb-rio.py** e o dataset **airbnb-listings-rio.csv** estes arquivos foram disponibilizados em conjunto com os demais arquivos disponíveis no evento, porém caso necessário, poderão também ser encontrados nos links citados abaixo. 46 | 47 | ## **Download do Script Python e do Dataset** 48 | 49 | Acesse a seguinte URL (https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/raw/main/Data%26AI/Cheguei_Atrasado/tf-ociFastTrack-Linuxtips.zip) e faça o download do script python e do Dataset 50 | 51 | **Salve os arquivos em um diretório de sua preferência.** 52 | 53 | # **Configurando o script python** 54 | 55 | Abra o arquivo **df\_airbnb-rio.py** com o edito de texto de sua preferência. 56 | 57 | Dentro do script, localize a entrada "namespace". Em seguida substitua a valor do indicado no arquivo pelo Namespace do Object Storage que você reservou na etapa anterior. 58 | 59 | ![](images/image05.PNG) 60 | 61 | Após alterar salve as alterações realizadas. 62 | 63 | # **Transferindo arquivos utilizados para os buckets** 64 | 65 | ## 66 | 67 | 68 | ## Nesta atividade utilizaremos a própria UI do OCI para fazer o upload dos arquivos para os buckets corretos no object storage. 69 | 70 | ## Transferindo o script Python para o bucket 71 | 72 | Acesse ao **menu** **-> Storage -> Buckets**. Em seguida verifique se você está no compartment correto (Compartimento-Trial) e lá você a lista com os seus buckets 73 | 74 | Acesse o **dataflow-warehouse** , e clique no botão **UPLOAD** 75 | 76 | ![](images/image06.PNG) 77 | 78 | Clique em "select \_files" e selecione o dataset do **df\_airbnb-rio.py** que você baixou na etapa anterior, depois clique no botão Upload 79 | 80 | ![](images/image07.PNG) 81 | 82 | 83 | ## Após a conclusão do upload clique no botão Close 84 | 85 | ## 86 | 87 | 88 | ## 89 | 90 | 91 | ## Transferindo o Dataset para o bucket 92 | 93 | Acesse ao **menu** **-> Storage -> Buckets**. Em seguida verifique se você está no compartment correto (Compartimento-Trial) e lá você a lista com os seus buckets 94 | 95 | Acesse o **raw-data** , e clique no botão **UPLOAD** 96 | 97 | ![](images/image08.PNG) 98 | 99 | Clique em select e selecione o dataset do **airbnb-listings-rio.csv** que você baixou na etapa anterior, depois clique no botão Upload 100 | 101 | ![](images/image09.PNG) 102 | 103 | 104 | ## Após a conclusão do upload clique no botão Close 105 | 106 | # **Criando sua primeira Dataflow Application** 107 | 108 | Neste passo iremos criar nossa primeira Dataflow application. O objetivo desta application será tranformar o dataset iris.csv em um arquivo no formato parquet, que poderá ser consumido por outras ferramentas. 109 | 110 | A console do serviço Data Flow pode ser acessada atavés do **menu** **-> Analytics & AI -> Data Flow** 111 | 112 | ![](images/image10.PNG) 113 | 114 | Dentro da console do Dataflow, vamos clicar em "Create Application" 115 | 116 | ![](images/image11.PNG) 117 | 118 | Após clicar no botão, iremos fornecer as informações básicas para criação de nossa primeira aplicação 119 | 120 | ![](images/image12.PNG) 121 | 122 | # **Executando sua primeira Application - "Run"** 123 | 124 | Após criação de sua "Dataflow App", agora podemos executar o código quantas vezes necessário através do botão RUN na console ou através de linha de comando com OCI CLI / API 125 | 126 | Neste exemplo iremos executar o script Application "APP\_Fast\_track", através da console: 127 | 128 | ![](images/image14.PNG) 129 | 130 | Dentro da Application criada, podemos encontrar diversas informações relacionadas a aplicação, além do botão "RUN" que iremos acionar para uma nova execução: 131 | 132 | ![](images/image15.PNG) 133 | 134 | Para cada execução podemos definir individualmente os parâmetros relacionados a infraestrutura alocada ou argumentos. 135 | 136 | Para nossa execução, não será necessário nenhum tipo de alteração, somente clicar em **"Run"** 137 | 138 | ![](images/image16.PNG) 139 | 140 | Em seguida você será direcionado a página de Runs, como no imagem abaixo 141 | 142 | ![](images/image17.PNG) 143 | 144 | # **Verificando Logs e o resultado esperado** 145 | 146 | O OCI Data Flow registra automaticamente os logs de erro dos nodes driver e executors no bucket dataflow-logs, os logs de stderr e stdout são gerados a cada execução em dois arquivos .gz diferentes. 147 | 148 | Os logs ficam listadas a cada "Run" das Applications, porém esta exibição não ocorre de imediato. Caso necessário verificar uma log que ainda não esteja sendo exibida na **console de execução** , podemos também verificar esses logs diretamente no **bucket dataflow-logs**. 149 | 150 | ![](images/image18.PNG) 151 | 152 | Após a conclusão da execução da aplicação spark, clique sobre o log "spark_application_stdout.log.gz" 153 | 154 | Uma nova aba deve ser aberta com o conteúdo dos dados processado. Caso não seja aberta uma nova aba com o conteúdo, mas seja realizado o download do arquivo, abra-o em algum editor de texto de sua preferência. Para ambos os casos o resultado da saída deve ser semelhante ao abaixo: 155 | 156 | ![](images/image19.PNG) 157 | 158 | Com isso concluímos este lab. -------------------------------------------------------------------------------- /DevApp/README.md: -------------------------------------------------------------------------------- 1 | # DevApp 2 | 3 | - [Resource Manager](#Resource-Manager) 4 | - [Container Registry (OCIR)](#container-registry-ocir) 5 | - [Functions](#functions) 6 | - [API Gateway](#api-gateway) 7 | - [Kubernetes](#kubernetes) 8 | 9 | ## Resource Manager 10 | 11 | Serviço que permite a automatização do provisionamento de infraestrutura no OCI através de Terraform. 12 | 13 | Pode ser utilizando tanto para importar e criar uma infraestrutura nova de arquivos Terraform, quanto para exportar, como arquivos Terraform, uma estrutura já configurada em um determinado compartimento. 14 | 15 | Através dele é possível realizar os jobs do Terraform: **Plan**, **Apply**, **Destroy** e **Import State**. 16 | 17 | Documentação: https://docs.oracle.com/en-us/iaas/Content/ResourceManager/home.htm 18 | 19 | ### Demonstração 20 | 21 | Importar as configurações de Terraform para o resource manager e executar os jobs de Plan e Apply. 22 | 23 | 1. Download 24 | 25 | Faça o download do aquivo .zip [aqui](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/raw/main/DevApp/terraform/terraform.zip). 26 | 27 | 2. Navegue no menu do OCI Developer Services -> Resource Manager -> Stacks 28 | 29 | 3. Crie uma nova Stack, selecionando My Configuration e selecione o arquivo baixado anteriormente. 30 | 31 | ## Container Registry (OCIR) 32 | 33 | Baseado no Open Container Iniciative é o repositório que pode ser utilizado para armazenar imagens de container (como Docker images) e criar repositórios tanto **públicos** quando **privados**. 34 | 35 | Ele é integrado com o IAM do OCI, e os usuário se autenticam através do nome de usuário da conta do OCI e o token de autenticação. 36 | 37 | No repositório também pode ser ativada a função de escanear vulnerabilidades das imagens armazenadas. Essa função retornas os uma lista com os códigos CVE, junto com sua descrição e nível de risco. 38 | 39 | Documentação: https://docs.oracle.com/en-us/iaas/Content/Registry/home.htm 40 | 41 | ### Demonstração 42 | 43 | 1. Navegue até o OCIR: Developer Service -> Container & Artifacts -> Container Registry. 44 | 45 | 2. No compartimento criado pelo Resource Manager, crie um novo repositório. 46 | 47 | ## Functions 48 | 49 | Serviço gerenciado de função como serviço no modelo serveless. Baseado no [Fn Project](https://fnproject.io/), que cria funções baseadas em containers. 50 | 51 | As linguagens suportadas no OCI são: 52 | 53 | - Java 54 | - Go 55 | - NodeJs 56 | - Python 57 | - Ruby 58 | 59 | Na comunidade encontramos também suporte para dotNET. 60 | 61 | As funções pode ser invocadas através de: 62 | 63 | - fn-cli (Linha de comando do Fn Project) 64 | - Rest API 65 | - oci-cli 66 | - SDK do OCI 67 | 68 | Documentação: https://docs.oracle.com/en-us/iaas/Content/Functions/home.htm 69 | 70 | ### Demonstração 71 | 72 | 1. Navegar até a aplicação que foi criada através do Resource Manager: Developer Services -> Functions -> Application 73 | 74 | 2. Entre na aplicação criada pelo Resource Manager e siga o **Getting Started**, para criar uma função na aplicação, utilizando o cloud shell. 75 | 76 | ## API Gateway 77 | 78 | API Gateway é a ferramenta que permite expor seus endpoints que estão em redes privadas na internet. O serviço permite adicionar validação, transformação de request e response, CORS, autenticação e autorização e limite de chamadas. 79 | 80 | Aceita como backend para as rotas: 81 | 82 | - HTTP 83 | - Functions 84 | - Stock Response 85 | 86 | Pode ser configuradas autenticação: 87 | 88 | - JWT 89 | - Custon (utilizando Functions) 90 | 91 | Permite trazer o próprio TLS e habilitar autorização do tipo mTLS. 92 | 93 | Documentação: https://docs.oracle.com/en-us/iaas/Content/APIGateway/home.htm 94 | 95 | ### Demonstração 96 | 97 | 1. Navegar até o API Gateway criado pelo Resource Manager: Developer Services -> API Management -> Gateways 98 | 99 | 2. No gateway já criado, criar um novo deployment 100 | 101 | 3. Configurar o deployment para ter um path apontando para a function criada no passo anterior 102 | 103 | ## Kubernetes 104 | O Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) é um serviço de Kubernetes totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem. 105 | Um dos grande destaques do serviço é ele não possuir nenhuma customização pré-instalada, fazendo com que o cluster seja compatível com qualquer implementação homologada de Kubernetes. Outro fator importante é a capacidade do serviço ser provisionado nos mais variados tipos de instância, sejam elas Bare Metal, VMs, Instâncias que possuem GPU, ou processadores ARM por exemplo. 106 | 107 | Caracteristicas da plataforma: 108 | - S.O dos worker nodes são baseados em Oracle Linux (Distro baseada em CentOS), podendo este ser personalizado. 109 | - Suporte a consumo de serviços nativos de nuvem, como Load Balancer, Armazenamento (Persistent volume claims) de forma nativa 110 | - Suporte a extensão de serviços (Custom Resource Definition) como Object Storages, ou Bases de Dados de Plataforma (Autonomous Databases, MySQL as a Service) 111 | - Suporte a autoscaling 112 | 113 | Documentação: https://docs.oracle.com/pt-br/iaas/Content/ContEng/home.htm 114 | 115 | ### Demonstração 116 | 117 | 1. Navegar até o Serviço de OKE criado pelo Resource Manager: Developer Services -> Containers & Artifacts -> Kubernetes Clusters (OKE) 118 | 2. No cluster já criado, acessar utilizando via cloud shell 119 | 3. Crie um novo arquivo no cloud shell chamado nginx_lb.yaml e copie o conteúdo do arquivo [nginx_lb.yaml](nginx_lb.yaml) presente nesse repositório 120 | 4. Para criar a implantação e o serviço definidos em nginx_lb.yaml enquanto estiver conectado ao cluster do Kubernetes, digite o comando: 121 | ``` kubectl apply -f nginx_lb.yaml ``` 122 | 5. O balanceador de carga pode levar alguns minutos para passar do estado pendente para totalmente operacional. Você pode exibir o estado atual do cluster digitando: 123 | ``` kubectl get all ``` 124 | 6. Validar a implementação acessando o IP público do LoadBalancer na porta 80: (Utilize o comando **kubectl get svc** para listar os serviços disponíveis) -------------------------------------------------------------------------------- /DevApp/nginx_lb.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: my-nginx 5 | labels: 6 | app: nginx 7 | spec: 8 | replicas: 3 9 | selector: 10 | matchLabels: 11 | app: nginx 12 | template: 13 | metadata: 14 | labels: 15 | app: nginx 16 | spec: 17 | containers: 18 | - name: nginx 19 | image: nginx:latest 20 | ports: 21 | - containerPort: 80 22 | 23 | --- 24 | 25 | apiVersion: v1 26 | kind: Service 27 | metadata: 28 | name: my-nginx-svc 29 | labels: 30 | app: nginx 31 | annotations: 32 | service.beta.kubernetes.io/oci-load-balancer-shape: 10Mbps 33 | spec: 34 | type: LoadBalancer 35 | ports: 36 | - port: 80 37 | selector: 38 | app: nginx -------------------------------------------------------------------------------- /DevApp/terraform/apigateway.tf: -------------------------------------------------------------------------------- 1 | resource "oci_apigateway_gateway" "devops_api" { 2 | #Required 3 | compartment_id = oci_identity_compartment.devops_compartment.id 4 | subnet_id = oci_core_subnet.sub_net_public.id 5 | endpoint_type = "PUBLIC" 6 | display_name = "${var.app_name}-APIGW" 7 | } -------------------------------------------------------------------------------- /DevApp/terraform/datasources.tf: -------------------------------------------------------------------------------- 1 | # OCI Services 2 | ## Available Services 3 | data "oci_core_services" "all_services" { 4 | filter { 5 | name = "name" 6 | values = ["All .* Services In Oracle Services Network"] 7 | regex = true 8 | } 9 | } 10 | 11 | # Gets a list of Availability Domains 12 | data "oci_identity_availability_domains" "ADs" { 13 | compartment_id = var.tenancy_ocid 14 | } 15 | 16 | data "oci_containerengine_node_pool_option" "oci_oke_node_pool_option" { 17 | node_pool_option_id = "all" 18 | } -------------------------------------------------------------------------------- /DevApp/terraform/functions.tf: -------------------------------------------------------------------------------- 1 | resource "oci_functions_application" "devops_application" { 2 | #Required 3 | compartment_id = oci_identity_compartment.devops_compartment.id 4 | display_name = "${var.app_name}-Application" 5 | subnet_ids = [oci_core_subnet.sub_net_public.id] 6 | 7 | } -------------------------------------------------------------------------------- /DevApp/terraform/iam-output.tf: -------------------------------------------------------------------------------- 1 | output "compartment_ocid"{ 2 | value = oci_identity_compartment.devops_compartment.id 3 | } -------------------------------------------------------------------------------- /DevApp/terraform/iam.tf: -------------------------------------------------------------------------------- 1 | resource "oci_identity_compartment" "devops_compartment" { 2 | #Required 3 | compartment_id = var.compartment_id 4 | description = "Compartimento para o deploy de ferramentas de DevOps" 5 | name = local.compartment_name 6 | } 7 | 8 | resource "oci_identity_dynamic_group" "devops_dynamic_group" { 9 | #Required 10 | compartment_id = var.tenancy_ocid 11 | description = "Devapp DG" 12 | matching_rule = "All {instance.compartment.id = '${local.compartment_ocid}'}" 13 | name = local.dg_name 14 | } 15 | 16 | resource "oci_identity_policy" "devops_policy" { 17 | compartment_id = oci_identity_compartment.devops_compartment.id 18 | description = "Policy para as ferramentas de DevApp" 19 | name = "DevOps_Policy" 20 | statements = local.oci_policies_compartment 21 | depends_on = [oci_identity_dynamic_group.devops_dynamic_group] 22 | } 23 | 24 | resource "oci_identity_policy" "scanning_image_policy" { 25 | compartment_id = var.tenancy_ocid 26 | description = "Policy para habilitar o scan de vulnerabilidade do OCIR" 27 | name = "Scanning_Image_Policy" 28 | statements = local.oci_policies_tenancy 29 | } 30 | 31 | locals { 32 | 33 | compartment_name = "DevApp" 34 | compartment_ocid = oci_identity_compartment.devops_compartment.id 35 | dg_name = "DevApp" 36 | 37 | oci_policies_compartment = [ 38 | "Allow any-user to use functions-family in compartment ${local.compartment_name} where ALL {request.principal.type= 'ApiGateway', request.resource.compartment.id = '${oci_identity_compartment.devops_compartment.id}'}", 39 | "Allow dynamic-group ${local.dg_name} to manage all-resources in compartment ${local.compartment_name}" 40 | ] 41 | 42 | oci_policies_tenancy = [ 43 | "Allow service vulnerability-scanning-service to read repos in tenancy" 44 | ] 45 | 46 | } -------------------------------------------------------------------------------- /DevApp/terraform/oke-output.tf: -------------------------------------------------------------------------------- 1 | output "cluster_name"{ 2 | value = oci_containerengine_cluster.oci_oke.name 3 | } 4 | 5 | output "cluster_ocid"{ 6 | value = oci_containerengine_cluster.oci_oke.id 7 | } 8 | 9 | output "node_pool_name"{ 10 | value = oci_containerengine_node_pool.oke_node_pool.name 11 | } 12 | 13 | output "node_pool_ocid"{ 14 | value = oci_containerengine_node_pool.oke_node_pool.id 15 | } -------------------------------------------------------------------------------- /DevApp/terraform/oke.tf: -------------------------------------------------------------------------------- 1 | resource "oci_containerengine_cluster" "oci_oke" { 2 | #Required 3 | compartment_id = oci_identity_compartment.devops_compartment.id 4 | kubernetes_version = "v1.21.5" 5 | name = "${var.app_name}-OKE" 6 | vcn_id = oci_core_vcn.vcn_devops.id 7 | 8 | #Optional 9 | endpoint_config { 10 | 11 | #Optional 12 | is_public_ip_enabled = "true" 13 | subnet_id = oci_core_subnet.sub_net_endpoint.id 14 | } 15 | options { 16 | service_lb_subnet_ids = [oci_core_subnet.sub_net_public.id] 17 | } 18 | } 19 | 20 | resource "oci_containerengine_node_pool" "oke_node_pool" { 21 | #Required 22 | cluster_id = oci_containerengine_cluster.oci_oke.id 23 | compartment_id = oci_identity_compartment.devops_compartment.id 24 | kubernetes_version = "v1.21.5" 25 | name = "${var.app_name}-pool" 26 | node_shape = var.node_pool_shape 27 | 28 | node_config_details { 29 | #Required 30 | placement_configs { 31 | #Required 32 | availability_domain = data.oci_identity_availability_domains.ADs.availability_domains.0.name 33 | subnet_id = oci_core_subnet.sub_net_privada.id 34 | } 35 | size = var.num_pool_workers 36 | } 37 | node_shape_config { 38 | 39 | #Optional 40 | memory_in_gbs = var.node_pool_node_shape_config_memory_in_gbs 41 | ocpus = var.node_pool_node_shape_config_ocpus 42 | } 43 | node_source_details { 44 | #Required 45 | image_id = var.node_pool_shape != "VM.Standard.A1.Flex"? element([for source in data.oci_containerengine_node_pool_option.oci_oke_node_pool_option.sources : source.image_id if length(regexall("Oracle-Linux-7.9-20[0-9]*.*", source.source_name)) > 0], 0) : element([for source in data.oci_containerengine_node_pool_option.oci_oke_node_pool_option.sources : source.image_id if length(regexall("Oracle-Linux-7.9-aarch64-20[0-9]*.*", source.source_name)) > 0], 0) 46 | source_type = "IMAGE" 47 | } 48 | } -------------------------------------------------------------------------------- /DevApp/terraform/providers.tf: -------------------------------------------------------------------------------- 1 | ## Copyright (c) 2021, Oracle and/or its affiliates. 2 | ## All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl 3 | 4 | terraform { 5 | required_version = ">= 0.14" 6 | required_providers { 7 | oci = { 8 | source = "hashicorp/oci" 9 | version = ">=4.34.0" 10 | } 11 | tls = { 12 | source = "hashicorp/tls" 13 | version = "2.0.1" # Latest version as March 2021 = 3.1.0. Using 2.0.1 (April, 2020) for ORM compatibility 14 | } 15 | local = { 16 | source = "hashicorp/local" 17 | version = "1.4.0" # Latest version as March 2021 = 2.1.0. Using 1.4.0 (September, 2019) for ORM compatibility 18 | } 19 | random = { 20 | source = "hashicorp/random" 21 | version = "2.3.0" # Latest version as March 2021 = 3.1.0. Using 2.3.0 (July, 2020) for ORM compatibility 22 | } 23 | } 24 | } 25 | 26 | 27 | provider "oci" { 28 | alias = "home_region" 29 | tenancy_ocid = var.tenancy_ocid 30 | region = "sa-saopaulo-1" 31 | } 32 | 33 | provider "oci" { 34 | alias = "current_region" 35 | tenancy_ocid = var.tenancy_ocid 36 | region = var.region 37 | } 38 | -------------------------------------------------------------------------------- /DevApp/terraform/schema.yaml: -------------------------------------------------------------------------------- 1 | title: "Developer-Fast-Track-Fest" 2 | description: "Criar um ambiente de cloud native através de terraform e Resource Manager" 3 | schemaVersion: 1.1.0 4 | version: "20190304" 5 | locale: "pt-br" 6 | 7 | 8 | ################# 9 | # Variaveis 10 | ################# 11 | variableGroups: 12 | - title: Configuração Geral 13 | visible: false 14 | variables: 15 | - tenancy_ocid 16 | - region 17 | - node_pool_boot_volume_size_in_gbs 18 | - oke_compartment_description 19 | - user_ocid 20 | - fingerprint 21 | - private_key_path 22 | - network_cidrs 23 | - cluster_options_admission_controller_options_is_pod_security_policy_enabled 24 | - deploy_pipeline_deploy_pipeline_parameters_items_default_value 25 | - deploy_pipeline_deploy_pipeline_parameters_items_description 26 | - deploy_pipeline_deploy_pipeline_parameters_items_name 27 | - release 28 | 29 | - title: DevOps 30 | visible: true 31 | variables: 32 | - compartment_id 33 | - app_name 34 | 35 | - title: OKE 36 | visible: true 37 | variables: 38 | - num_pool_workers 39 | - node_pool_shape 40 | - node_pool_node_shape_config_ocpus 41 | - node_pool_node_shape_config_memory_in_gbs 42 | 43 | ###################### 44 | # Variable Definitions 45 | ###################### 46 | 47 | variables: 48 | 49 | compartment_id: 50 | type: oci:identity:compartment:id 51 | title: "Compartment" 52 | description: "The compartment in which to create resources" 53 | required: true 54 | 55 | app_name: 56 | type: string 57 | title: "Nome do Projeto" 58 | pattern: ^[a-zA-Z0-9]{1,30}$ 59 | description: "Não utilize espaço ou carácter especial." 60 | required: true 61 | 62 | num_pool_workers: 63 | type: integer 64 | title: "Number of Worker Nodes" 65 | default: 1 66 | minimum: 1 67 | maximum: 1000 68 | required: true 69 | visible: 70 | and: 71 | - create_new_oke_cluster 72 | 73 | node_pool_shape: 74 | type: oci:core:instanceshape:name 75 | title: "Select a shape for the Worker Nodes instances" 76 | default: "VM.Standard.E3.Flex" 77 | required: true 78 | dependsOn: 79 | compartmentId: compartment_ocid 80 | visible: 81 | and: 82 | - create_new_oke_cluster 83 | 84 | node_pool_node_shape_config_ocpus: 85 | type: integer 86 | minimum: 1 87 | maximum: 64 88 | default: 1 89 | title: "Number of OCPUs" 90 | visible: 91 | and: 92 | - and: 93 | - create_new_oke_cluster 94 | - or: 95 | - eq: 96 | - node_pool_shape 97 | - "VM.Standard.E3.Flex" 98 | - eq: 99 | - node_pool_shape 100 | - "VM.Standard.E4.Flex" 101 | - eq: 102 | - node_pool_shape 103 | - "VM.Standard.A1.Flex" 104 | 105 | node_pool_node_shape_config_memory_in_gbs: 106 | type: integer 107 | minimum: 1 108 | maximum: 1024 109 | default: 16 110 | title: "Amount of memory (GB)" 111 | visible: 112 | and: 113 | - and: 114 | - create_new_oke_cluster 115 | - or: 116 | - eq: 117 | - node_pool_shape 118 | - "VM.Standard.E3.Flex" 119 | - eq: 120 | - node_pool_shape 121 | - "VM.Standard.E4.Flex" 122 | - eq: 123 | - node_pool_shape 124 | - "VM.Standard.A1.Flex" -------------------------------------------------------------------------------- /DevApp/terraform/terraform.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/DevApp/terraform/terraform.zip -------------------------------------------------------------------------------- /DevApp/terraform/variable.tf: -------------------------------------------------------------------------------- 1 | variable "tenancy_ocid" {} 2 | variable "region" {} 3 | variable "compartment_id" {} 4 | variable "app_name" {} 5 | variable "num_pool_workers" {} 6 | variable "node_pool_shape" {} 7 | variable "node_pool_node_shape_config_ocpus" {} 8 | variable "node_pool_node_shape_config_memory_in_gbs" {} -------------------------------------------------------------------------------- /DevApp/terraform/vcn-output.tf: -------------------------------------------------------------------------------- 1 | output "vcn_id"{ 2 | value = oci_core_vcn.vcn_devops.id 3 | } 4 | 5 | output "subnet_public_id"{ 6 | value = oci_core_subnet.sub_net_public.id 7 | } 8 | 9 | output "subnet_private_id"{ 10 | value = oci_core_subnet.sub_net_privada.id 11 | } 12 | 13 | output "subnet_endpoint_id"{ 14 | value = oci_core_subnet.sub_net_endpoint.id 15 | } 16 | 17 | -------------------------------------------------------------------------------- /DevApp/terraform/vcn-variables.tf: -------------------------------------------------------------------------------- 1 | # Network Details 2 | ## CIDRs 3 | variable "network_cidrs" { 4 | type = map(string) 5 | 6 | default = { 7 | VCN-CIDR = "10.20.0.0/16" 8 | PRIVATE-SUBNET-CIDR = "10.20.10.0/24" 9 | PUBLIC-SUBNET-CIDR = "10.20.20.0/24" 10 | ENDPOINT-SUBNET-CIDR = "10.20.0.0/28" 11 | ALL-CIDR = "0.0.0.0/0" 12 | } 13 | } -------------------------------------------------------------------------------- /DevApp/terraform/vcn.tf: -------------------------------------------------------------------------------- 1 | resource "oci_core_vcn" "vcn_devops" { 2 | #Required 3 | compartment_id = oci_identity_compartment.devops_compartment.id 4 | 5 | #Optional 6 | cidr_block = lookup(var.network_cidrs, "VCN-CIDR") 7 | display_name = "${var.app_name}-VCN" 8 | dns_label = var.app_name 9 | } 10 | 11 | resource "oci_core_nat_gateway" "nat_gateway" { 12 | 13 | compartment_id = oci_identity_compartment.devops_compartment.id 14 | vcn_id = oci_core_vcn.vcn_devops.id 15 | } 16 | 17 | resource "oci_core_internet_gateway" "internet_gateway" { 18 | 19 | compartment_id = oci_identity_compartment.devops_compartment.id 20 | vcn_id = oci_core_vcn.vcn_devops.id 21 | } 22 | 23 | resource "oci_core_service_gateway" "service_gateway" { 24 | #Required 25 | compartment_id = oci_identity_compartment.devops_compartment.id 26 | services { 27 | service_id = lookup(data.oci_core_services.all_services.services[0], "id") 28 | } 29 | vcn_id = oci_core_vcn.vcn_devops.id 30 | } 31 | 32 | resource "oci_core_route_table" "private_rt" { 33 | 34 | compartment_id = oci_identity_compartment.devops_compartment.id 35 | vcn_id = oci_core_vcn.vcn_devops.id 36 | display_name = "RT_PRIVADO" 37 | route_rules { 38 | network_entity_id = oci_core_nat_gateway.nat_gateway.id 39 | cidr_block = lookup(var.network_cidrs, "ALL-CIDR") 40 | } 41 | route_rules { 42 | description = "Traffic to OCI services" 43 | destination = lookup(data.oci_core_services.all_services.services[0], "cidr_block") 44 | destination_type = "SERVICE_CIDR_BLOCK" 45 | network_entity_id = oci_core_service_gateway.service_gateway.id 46 | } 47 | } 48 | 49 | resource "oci_core_route_table" "public_rt" { 50 | 51 | compartment_id = oci_identity_compartment.devops_compartment.id 52 | vcn_id = oci_core_vcn.vcn_devops.id 53 | display_name = "RT_PUBLICO" 54 | route_rules { 55 | network_entity_id = oci_core_internet_gateway.internet_gateway.id 56 | cidr_block = lookup(var.network_cidrs, "ALL-CIDR") 57 | } 58 | } 59 | 60 | resource "oci_core_security_list" "security_list_private" { 61 | 62 | compartment_id = oci_identity_compartment.devops_compartment.id 63 | vcn_id = oci_core_vcn.vcn_devops.id 64 | display_name = "Private_SL" 65 | egress_security_rules { 66 | destination = lookup(var.network_cidrs, "ALL-CIDR") 67 | protocol = "all" 68 | description = "Allow access to internet" 69 | destination_type = "CIDR_BLOCK" 70 | } 71 | ingress_security_rules { 72 | protocol = "all" 73 | source = lookup(var.network_cidrs, "VCN-CIDR") 74 | description = "comunication inside VCN" 75 | source_type = "CIDR_BLOCK" 76 | stateless = false 77 | } 78 | ingress_security_rules { 79 | protocol = "6" 80 | source = lookup(var.network_cidrs, "ALL-CIDR") 81 | description = "Allow SSH" 82 | source_type = "CIDR_BLOCK" 83 | stateless = false 84 | 85 | tcp_options { 86 | max = "22" 87 | min = "22" 88 | } 89 | } 90 | } 91 | 92 | resource "oci_core_security_list" "security_list_public" { 93 | #Required 94 | compartment_id = oci_identity_compartment.devops_compartment.id 95 | vcn_id = oci_core_vcn.vcn_devops.id 96 | 97 | #Optional 98 | display_name = "Private_SL" 99 | egress_security_rules { 100 | destination = lookup(var.network_cidrs, "ALL-CIDR") 101 | protocol = "all" 102 | description = "Allow access to internet" 103 | destination_type = "CIDR_BLOCK" 104 | } 105 | ingress_security_rules { 106 | protocol = "6" 107 | source = lookup(var.network_cidrs, "ALL-CIDR") 108 | description = "Allow SSH" 109 | source_type = "CIDR_BLOCK" 110 | stateless = false 111 | 112 | tcp_options { 113 | max = "22" 114 | min = "22" 115 | } 116 | } 117 | ingress_security_rules { 118 | protocol = "6" 119 | source = lookup(var.network_cidrs, "ALL-CIDR") 120 | description = "Para o APIGW" 121 | source_type = "CIDR_BLOCK" 122 | stateless = false 123 | 124 | tcp_options { 125 | max = "443" 126 | min = "443" 127 | } 128 | } 129 | } 130 | 131 | resource "oci_core_security_list" "security_list_endpoint" { 132 | #Required 133 | compartment_id = oci_identity_compartment.devops_compartment.id 134 | vcn_id = oci_core_vcn.vcn_devops.id 135 | 136 | #Optional 137 | display_name = "EndPoint_SL" 138 | egress_security_rules { 139 | destination = lookup(var.network_cidrs, "ALL-CIDR") 140 | protocol = "all" 141 | description = "Allow access to internet" 142 | destination_type = "CIDR_BLOCK" 143 | } 144 | ingress_security_rules { 145 | protocol = "6" 146 | source = lookup(var.network_cidrs, "ALL-CIDR") 147 | description = "Allow OKE Endpoint" 148 | source_type = "CIDR_BLOCK" 149 | stateless = false 150 | 151 | tcp_options { 152 | max = "6443" 153 | min = "6443" 154 | } 155 | } 156 | ingress_security_rules { 157 | protocol = "6" 158 | source = lookup(var.network_cidrs, "VCN-CIDR") 159 | description = "Allow OKE Endpoint" 160 | source_type = "CIDR_BLOCK" 161 | stateless = false 162 | 163 | tcp_options { 164 | max = "12250" 165 | min = "12250" 166 | } 167 | } 168 | ingress_security_rules { 169 | description = "Path discovery" 170 | icmp_options { 171 | code = "4" 172 | type = "3" 173 | } 174 | protocol = "1" 175 | source = lookup(var.network_cidrs, "VCN-CIDR") 176 | source_type = "CIDR_BLOCK" 177 | stateless = false 178 | } 179 | } 180 | 181 | resource "oci_core_subnet" "sub_net_public" { 182 | compartment_id = oci_identity_compartment.devops_compartment.id 183 | display_name = "subnet_publica" 184 | vcn_id = oci_core_vcn.vcn_devops.id 185 | cidr_block = lookup(var.network_cidrs, "PUBLIC-SUBNET-CIDR") 186 | security_list_ids = [oci_core_security_list.security_list_public.id] 187 | route_table_id = oci_core_route_table.public_rt.id 188 | dns_label = "public" 189 | } 190 | 191 | resource "oci_core_subnet" "sub_net_privada" { 192 | compartment_id = oci_identity_compartment.devops_compartment.id 193 | display_name = "subnet_privada" 194 | vcn_id = oci_core_vcn.vcn_devops.id 195 | cidr_block = lookup(var.network_cidrs, "PRIVATE-SUBNET-CIDR") 196 | security_list_ids = [oci_core_security_list.security_list_private.id] 197 | route_table_id = oci_core_route_table.private_rt.id 198 | prohibit_public_ip_on_vnic = "true" 199 | dns_label = "private" 200 | } 201 | 202 | resource "oci_core_subnet" "sub_net_endpoint" { 203 | compartment_id = oci_identity_compartment.devops_compartment.id 204 | display_name = "subnet_endpoint" 205 | vcn_id = oci_core_vcn.vcn_devops.id 206 | cidr_block = lookup(var.network_cidrs, "ENDPOINT-SUBNET-CIDR") 207 | security_list_ids = [oci_core_security_list.security_list_endpoint.id] 208 | route_table_id = oci_core_route_table.public_rt.id 209 | } -------------------------------------------------------------------------------- /Infrastructure/AutonomousDatabase/Lab5 - Autonomous Database.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/AutonomousDatabase/Lab5 - Autonomous Database.pdf -------------------------------------------------------------------------------- /Infrastructure/Compartments/Lab 1 - Compartiments.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Compartments/Lab 1 - Compartiments.pdf -------------------------------------------------------------------------------- /Infrastructure/Networking/Lab 2 - Networking.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Networking/Lab 2 - Networking.pdf -------------------------------------------------------------------------------- /Infrastructure/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/README.md -------------------------------------------------------------------------------- /Infrastructure/Storage/README.md: -------------------------------------------------------------------------------- 1 | # Lab 4. Serviços de Armazenamento em Nuvem 2 | 3 | **Block Storage** 4 | 5 | Objetivos 6 | 7 | > • Crie um volume de Block Storage de 500GB e anexe o Block Storage a 8 | > uma Instância de Computação 9 | 10 | **Criando volumes de Block Storage** 11 | 12 | Você pode criar volumes de Block Storage por meio da interface "Block 13 | Storage". 14 | 15 | # [EXERCÍCIO 4: Criando um volume de Block Storage] 16 | **PASSO 1 -** Para acessá-lo: No menu principal, você escolhe Block 17 | Storage, depois "Block Volume". 18 | 19 | ![](images/Picture2.png) 20 | 21 | **PASSO 2 -** O processo de criação do volume do bloco é muito 22 | simples, você só precisa clicar em \"Create Block Volume\" e 23 | preencher as informações solicitadas: 24 | 25 | > **Name: block_vol500GB** 26 | > 27 | > **Create in Compartment**: \ 28 | > 29 | > **Virtual Cloud Network**: \ 30 | > 31 | > **Availability Domain**: AD 1 32 | > 33 | > **Size**: 500 GB 34 | > 35 | > **Backup Policy**: Bronze 36 | > 37 | > **Volume Performance**: Balanced 38 | 39 | - **IMPORTANTE**: O Block Storage **NECESSITA** estar no mesmo 40 | domínio de disponibilidade (AD) da Instância de Computação que 41 | será anexado. No caso iremos anexá-lo à VM Linux 1 criada no 42 | AD 1. portanto **certifique-se que Block Volume está no mesmo AD 43 | da sua VM.** 44 | 45 | ![](images/Picture3.png) 46 | 47 | Após a configuração, o OCI começará o provisionamento. O tempo de 48 | provisionamento depende do tamanho do volume. 49 | 50 | **Conectando Block Volume a uma Instância de Computação** 51 | 52 | **PASSO 3 -** Para conectar Block Volumes a instâncias de computação, 53 | você precisa acessar a tela inicial \"Compute Instance\" e, na página 54 | de detalhes da VM, clicar em \"Attach Block Volume\". 55 | 56 | ![](images/Picture4.png) 57 | 58 | **PASSO 4 -** Aanexe o Block Volume de 500 GB 59 | ![](images/Picture5.png) 60 | 61 | Assim que o disco estiver devidamente conectado, podemos montá-lo na 62 | instância de computação. 63 | 64 | **PASSO 5 -** Para facilitar o processo de anexação de disco, o 65 | Oracle Cloud Infrastructure fornece os comandos necessários para 66 | detectar o novo disco da VM. No lado direito das informações do 67 | disco, você encontrará um menu de três pontos. 68 | 69 | ![](images/Picture6.png) 70 | 71 | Se você escolher "iSCSI Commands & Information", obterá os comandos 72 | necessários para detectar o disco recém-criado: 73 | 74 | ![](images/Picture7.png) 75 | 76 | 77 | 78 | **PASSO 6 -** Execute o procedimento para o Block Volume de 500 GB. 79 | 80 | ### Tudo que você precisa fazer é copiar os comandos e executá-los no servidor Linux. 81 | Após a detecção do disco, você precisa formatar e montar o novo disco: 82 | 83 | ### Como detectar e mapear discos novos no Linux 84 | 85 | ### 1 -- Conecte-se ao Servidor VM-OracleLinux-AD1 como usuário opc conforme feito no LAB 3 86 | 87 | ### 2 -- Se torne ROOT user através do comando SUDO: 88 | *"\$* sudo su - *"* 89 | 90 | ### 3 -- Execute o "ATTACH commands" copiado do "iSCSI Commands & Information": 91 | 92 | ![](images/Picture8.png) 93 | 94 | ### 4 -- Detecte o novo dispositivo com o comando: 95 | *"\$* fdisk -l *"* 96 | 97 | Você verá a seguinte informação: 98 | 99 | ![](images/Picture9.png) 100 | 101 | 102 | ### 5 -- Formate o disco com o comando: 103 | "mkfs /dev/sdb" 104 | 105 | ![](images/Picture10.png) 106 | 107 | ### 6 -- Após o disco ter sido formatado, crie um diretório dentro do linux para ser usado como um ponto de montagem para o novo volume de disco com o comando: 108 | *"*mkdir /vol500g*"* 109 | 110 | ![](images/Picture11.png) 111 | 112 | ### 7 -- Monte o novo volume de disco com o comando: 113 | "mount /dev/sdb /vol500g" 114 | 115 | e cheque se o disco está disponível com o comando: 116 | 117 | "df -h" 118 | 119 | ![](images/Picture12.png) 120 | 121 | 122 | **Configurando Políticas de Backup para Block Storage** 123 | 124 | Objetivos 125 | 126 | - Criar Políticas de Backup 127 | 128 | No Oracle Cloud Infrastructure, Block Volume (incluindo volumes de 129 | inicialização -- Boot Volumes) e backups Compute Nodes são 130 | independentes. As políticas de backup podem ser definidas na página 131 | inicial do Block Storage (Menu Principal\> Block Storage\> Block 132 | Volumes): 133 | 134 | ![](images/Picture13.jpg) 135 | 136 | As opções de backup podem ser facilmente acessadas a partir do "menu 137 | rápido" (três pontos à direita), opção "Assign Backup Policy" onde você 138 | pode escolher a política de backup mais apropriada para seus dados. 139 | 140 | ![](images/Picture14.png) 141 | 142 | # Lab 5. Object Storage 143 | 144 | O serviço Oracle Cloud Infrastructure Object Storage é uma plataforma de 145 | armazenamento de alto desempenho em escala de internet que oferece 146 | durabilidade de dados confiável e econômica. O serviço Object Storage 147 | pode armazenar uma quantidade ilimitada de dados não estruturados de 148 | qualquer tipo de conteúdo, incluindo dados analíticos e conteúdo 149 | avançado, como imagens e vídeos. 150 | 151 | Com o serviço Object Storage, você pode armazenar e recuperar dados de 152 | forma segura e protegida diretamente da internet ou de dentro da 153 | plataforma de nuvem. O serviço Object Storage oferece várias [interfaces 154 | de 155 | gerenciamento](https://docs.oracle.com/pt-br/iaas/Content/Object/Concepts/objectstorageoverview.htm#accessways) 156 | que permitem gerenciar facilmente o armazenamento em escala. A 157 | elasticidade da plataforma permite que você comece em pequena escala e 158 | dimensione perfeitamente, sem prejudicar o desempenho ou a 159 | confiabilidade do serviço. 160 | 161 | O Object Storage é um serviço regional e não está vinculado a nenhuma 162 | instância de computação específica. Você pode acessar dados de qualquer 163 | lugar dentro ou fora do contexto do Oracle Cloud Infrastructure, desde 164 | que tenha conectividade com a internet e possa acessar um dos pontos 165 | finais do serviço [[Object 166 | Storage]{.underline}](https://docs.oracle.com/iaas/api/#/en/objectstorage/latest/). 167 | 168 | **Tiers do Object Storage** 169 | 170 | **Standard (HOT)** 171 | 172 | A camada **Padrão** é a camada de armazenamento padrão principal usada 173 | para dados do serviço [[Object 174 | Storage]{.underline}](https://docs.oracle.com/pt-br/iaas/Content/Object/Concepts/objectstorageoverview.htm#Overview_of_Object_Storage). 175 | A camada de armazenamento Padrão é o armazenamento \"dinâmico\" usado 176 | para dados que você precisa acessar com rapidez, imediatamente e 177 | frequência. A acessibilidade dos dados e o desempenho justificam um 178 | preço mais alto para armazenar dados no nível Standard.\ 179 | Alguns casos de uso principais da camada de armazenamento Padrão incluem 180 | o seguinte: 181 | 182 | - Repositório de conteúdo para dados escaláveis, imagens, logs e vídeo 183 | acessíveis 184 | 185 | - Repositório para backups acessíveis 186 | 187 | - Repositório de dados para dados do Hadoop/big. Fornece uma 188 | plataforma de armazenamento escalável para armazenar conjuntos de 189 | dados de grande porte e operar com perfeição nesses conjuntos de 190 | dados. O [Conector HDFS para o Serviço Object 191 | Storage](https://docs.oracle.com/pt-br/iaas/Content/API/SDKDocs/hdfsconnector.htm#hdfs) 192 | oferece conectividade com vários mecanismos de análise de big data, 193 | como Apache Spark e MapReduce. Essa conectividade permite que os 194 | mecanismos de análise trabalhem diretamente com dados armazenados no 195 | serviço Object Storage. Para obter mais informações, consulte 196 | [Suporte a 197 | Hadoop](https://docs.oracle.com/pt-br/iaas/Content/Object/Tasks/hadoopsupport.htm#Hadoop_Support). 198 | 199 | **Infrequent Access (COOL)** 200 | 201 | A camada **Acesso Não Frequente** é um armazenamento \"resfriado\" usado 202 | para dados que você acessa com pouca frequência, mas que deve estar 203 | disponível imediatamente quando necessário. Os custos de armazenamento 204 | são menores do que **Padrão**. 205 | 206 | Se você estiver carregando um objeto em um bucket de camada de 207 | armazenamento padrão Padrão, poderá atribuir explicitamente o objeto à 208 | camada de armazenamento Infrequent Access de menor custo. 209 | 210 | A camada Acesso Não Frequente tem um período mínimo de retenção de 211 | armazenamento e taxas de recuperação de dados: 212 | 213 | - O período mínimo de retenção de armazenamento para a camada de 214 | Acesso Não Frequente é de 31 dias. Se você excluir ou substituir 215 | objetos na camada Acesso Não Frequente antes que os requisitos de 216 | retenção sejam atendidos, será cobrado o custo rateado de armazenar 217 | os dados pelos 31 dias completos. 218 | 219 | - Quando você precisar acessar objetos armazenados nesta camada, será 220 | cobrada uma taxa de recuperação de dados por GiB. 221 | 222 | Alguns casos de uso principais da camada de armazenamento do Infrequent 223 | Access incluem o seguinte: 224 | 225 | - Backups de dados locais 226 | 227 | - Repositório para backups raramente acessados 228 | 229 | - Armazenamento para dados replicados ou copiados de outra região 230 | 231 | **Archive (COLD)** 232 | 233 | A camada **Arquivo Compactado** é a camada de armazenamento padrão 234 | principal usada para dados do serviço [Archive 235 | Storage](https://docs.oracle.com/pt-br/iaas/Content/Archive/Concepts/archivestorageoverview.htm#Overview_of_Archive_Storage). 236 | A camada de armazenamento de arquivos compactados é um armazenamento 237 | \"frio\" usado para dados raramente ou que raramente acessam, mas que 238 | deve ser retido e preservado por longos períodos.\ 239 | \ 240 | Os objetos na camada Arquivo Compactado devem ser restaurados antes de 241 | estarem disponíveis para acesso. A economia da camada Arquivo Compactado 242 | compensa o lead time necessário para acessar os dados. No entanto, a 243 | camada Archive tem um período mínimo de retenção de armazenamento e 244 | algumas taxas de armazenamento adicionais: 245 | 246 | - O período mínimo de retenção de armazenamento para a camada de 247 | Arquivo Compactado é de 90 dias. Se você excluir ou substituir 248 | objetos na camada Arquivo Compactado antes que os requisitos de 249 | retenção sejam atendidos, será cobrado o custo rateado de armazenar 250 | os dados pelos 90 dias completos. 251 | 252 | - Ao restaurar objetos, você está retornando esses objetos para a 253 | camada Padrão para acesso. Você será cobrado pela camada de classe 254 | Padrão enquanto os objetos restaurados residirem nessa camada. 255 | 256 | Alguns casos de uso principais da camada de armazenamento de Arquivos 257 | Compactados incluem o seguinte: 258 | 259 | - Requisitos de conformidade e auditoria 260 | 261 | - Análise de dados de log retroativo para determinar o padrão de uso 262 | ou para depurar problemas 263 | 264 | - Dados do repositório de conteúdo histórico ou raramente acessados 265 | 266 | - Dados gerados pelo aplicativo que exigem arquivamento para análise 267 | futura ou para fins legais 268 | 269 | Objetivo 270 | 271 | - Criar um Site estático utilizando um Bucket público 272 | 273 | # [EXERCÍCIO 5: Criar um Object Storage e um site estático] 274 | 275 | **PASSO 1** -- Acesse a tela de Object Storage através do menu principal \>Object Storage e Archive Storage\> Buckets 276 | 277 | ![](images/Picture15.png) 278 | 279 | **PASSO 2** -- Selecione o compartimento desejado e clique em "Create 280 | Bucket" 281 | 282 | ![](images/Picture16.png) 283 | 284 | **PASSO 3** -- Crie os Buckets com as seguintes configurações: 285 | 286 | > **Bucket Name**: bucket-site 287 | > 288 | > **Default Storage Tier**: Standard 289 | > 290 | > **Enable Object Versioning**: V 291 | 292 | 293 | 294 | > **Bucket Name**: dataflow-logs 295 | > 296 | > **Default Storage Tier**: Standard 297 | > 298 | > **Enable Object Versioning**: V 299 | 300 | 301 | 302 | > **Bucket Name**: dataflow-warehouse 303 | > 304 | > **Default Storage Tier**: Standard 305 | > 306 | > **Enable Object Versioning**: V 307 | 308 | 309 | 310 | > **Bucket Name**: raw-data 311 | > 312 | > **Default Storage Tier**: Standard 313 | > 314 | > **Enable Object Versioning**: V 315 | 316 | 317 | 318 | ![](images/Picture17.png) 319 | 320 | **PASSO 3** -- A criação será instantânea e você já verá as 321 | informações do seu Bucket: 322 | 323 | ![](images/Picture18.png) 324 | 325 | Selecione o seu novo bucket para ver suas configurações 326 | 327 | **PASSO 4** -- Agora, vamos alterar a visibilidade do bucket de 328 | "Privado" para "Público": 329 | 330 | ![](images/Picture19.png) 331 | 332 | **Não deixe habilitada** a opção de liberar para os usuários listarem 333 | os objetos do bucket 334 | 335 | ![](images/Picture20.png) 336 | 337 | Salve as alterações 338 | 339 | **PASSO 5** -- Faça o UPLOAD do arquivo "index.html" presente no 340 | material de apoio deste workshop. 341 | 342 | Para fazer UPLOAD de arquivos diretamente da console, basta clicar no 343 | botão Upload e selecionar o arquivo. 344 | 345 | ![](images/Picture21.png) 346 | 347 | Não será necessário preencher nenhum campo. Apenas selecione o 348 | arquivo e faça o upload 349 | 350 | ![](images/Picture22.png) 351 | 352 | **PASSO 6** -- O arquivo aparecerá na sessão Objects do seu Bucket. 353 | Agora para puxar o endereço https deste recurso basta selecionar os 3 354 | pontos na lateral do objeto e selecionar "View Object Details" 355 | 356 | ![](images/Picture23.png) 357 | 358 | **PASSO 7** -- Copie o endereço HTTP abaixo e cole no seu browser 359 | para ver o seu site estático funcionando. 360 | 361 | ![](images/Picture24.png) 362 | 363 | Seu site está pronto, agora basta fazer o apontamento em seu DNS 364 | 365 | ![](images/objstorage.png) 366 | 367 | 368 | 369 | # Lab 6. Serviço de File Storage 370 | 371 | **File Storage** 372 | 373 | O servi o OCI File Storage oferece um sistema de arquivos de 374 | rede de n vel empresarial duravel, escalonavel e seguro. 375 | Voce pode se conectar a um sistema de arquivos de servico de 376 | armazenamento de arquivos a partir de qualquer bare metal, 377 | maquina virtual ou instancia de container em sua VCN. 378 | Voce tambem pode acessar um sistema de arquivos de fora do VCN 379 | usando o Oracle Cloud Infrastructure FastConnect e a VPN com 380 | segurança do protocolo da Internet (IPSec). 381 | 382 | O uso do servico de armazenamento de arquivos requer a compreensao 383 | dos seguintes conceitos, incluindo alguns que pertencem ao 384 | Oracle Cloud Infrastructure Networking: 385 | 386 | - Mount Target: 387 | Um endpoint NFS que reside em uma sub-rede de sua escolha e possui alta disponibilidade. 388 | O Mount Target fornece o endere o IP ou nome DNS que é usado no comando de montagem para 389 | conectar NFS clients a um File System. Um único Mount Targent pode servir como endpoint 390 | de muitos File Systems. 391 | 392 | - Export: 393 | O Export controla como os clientes NFS acessam os File Systems quando se conectam a um 394 | Mount Target. 395 | Os File Systems são exportados (disponibilizados) por meio de Mount Targets. 396 | Cada Mount Target mantém um conjunto de exportaçõs que contém uma ou várias exportações. 397 | 398 | 399 | Objetivos 400 | 401 | > • Criar um FileStorage Service File System, e acessa-lo através de uma instância Linux. 402 | 403 | **Criando um File Storage Service File System** 404 | 405 | # [EXERCÍCIO 6: Criando um volume de File Storage] 406 | **PASSO 1 -** Acesse a tela de FileStorage através de Storage>File Storage. 407 | 408 | ![](images/fs01.png) 409 | 410 | **PASSO 2 -** Clique em create file system: 411 | 412 | ![](images/fs02.png) 413 | 414 | **PASSO 3 -** Clique em create file system: 415 | 416 | Você verá uma tela pop-up solicitando as principais informações 417 | para identificar o FileStorage Service. Use o botão editar. 418 | 419 | ![](images/fs03.png) 420 | 421 | ![](images/fs04.png) 422 | 423 | **PASSO 4 -** Selecione sua VCN e a Sub-rede Pública: 424 | 425 | ![](images/fs05.png) 426 | 427 | ![](images/fs06.png) 428 | 429 | **PASSO 5 -** Libere as regras de firewall: 430 | 431 | Observe que FileStorage é um serviço de rede e, como tal, seu uso está subordinado as regras de firewall. 432 | Para montar o Mount Target criado, vamos criar uma regra de segurança (Security Rule) de entrada (Ingress), 433 | para permitir o tráfego IP do serviço FileStorage. 434 | 435 | ![](images/fs07.png) 436 | 437 | Selecione a subnet onde o Mount Target foi anexado. 438 | Em: Menu principal >Networking > Virtual Cloud Networks, Clique em sua VCN e 439 | depois selecione a Subnet onde o Mount Target foi anexado, “Public Subnet”. 440 | Clique em “Default Security List” e depois clique no botão “Add Ingress Rules” 441 | e crie as regras de entrada abaixo: 442 | 443 | ![](images/fs12.png) 444 | 445 | **PASSO 6 -** Menu Exports: 446 | 447 | Selecione o Mount Target criado através do menu principal >File Storage> Mount Target, no menu de ações “Export’s”, 448 | selecione “Mount Commands” e você terá informações de montagem: 449 | 450 | ![](images/fs08.png) 451 | 452 | ![](images/fs09.png) 453 | 454 | **PASSO 7 -** Montagem no GNU/Linux: 455 | 456 | Acesse sua VM Linux criada e execute o comando de montagem disponibilizado pelo OCI. 457 | Após os commandos de montage verifique o file storage contendo 8E 458 | disponível através do comando "df -h". 459 | 460 | ![](images/fs10.png) 461 | 462 | ![](images/fs11.png) 463 | 464 | 465 | 466 | 467 | -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture1.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture10.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture11.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture12.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture13.jpg -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture14.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture15.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture16.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture17.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture18.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture19.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture2.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture20.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture21.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture22.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture23.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture24.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture25.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture26.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture3.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture4.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture5.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture6.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture7.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture8.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/Picture9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/Picture9.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs01.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs02.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs03.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs04.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs05.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs06.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs07.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs08.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs09.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs10.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs11.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/fs12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/fs12.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/linuxtips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/linuxtips.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/objstorage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/objstorage.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/oci-fc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/images/oci-fc.png -------------------------------------------------------------------------------- /Infrastructure/Storage/images/teste.md: -------------------------------------------------------------------------------- 1 | testemd 2 | -------------------------------------------------------------------------------- /Infrastructure/Storage/media/Image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/Infrastructure/Storage/media/Image1.png -------------------------------------------------------------------------------- /Infrastructure/Storage/media/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | LAB: OCI FAST TRACK 7 | 8 | 9 |
LOGO OCI FAST TRACK 11 |

Site estático no Object Storage

12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/compartment.tf: -------------------------------------------------------------------------------- 1 | resource "oci_identity_compartment" "compartimentotrial" { 2 | #Required 3 | compartment_id = var.tenancy_ocid 4 | description = "Compartimento Trial Linux Tips" 5 | name = "Compartimento-Trial4" 6 | 7 | 8 | } -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/compute.tf: -------------------------------------------------------------------------------- 1 | resource "oci_core_instance" "instance1" { 2 | availability_domain = data.oci_identity_availability_domain.ads.name 3 | compartment_id = oci_identity_compartment.compartimentotrial.id 4 | image = "ocid1.image.oc1.iad.aaaaaaaaffh3tppq63kph77k3plaaktuxiu43vnz2y5oefkec37kwh7oomea" 5 | shape = "VM.Standard2.1" 6 | display_name = "vm-linuxtips" 7 | create_vnic_details { 8 | #Required 9 | subnet_id = oci_core_subnet.subnet1.id 10 | #Optional 11 | assign_public_ip = "true" 12 | display_name = "vm-linuxtips" 13 | hostname_label = "vm-linuxtips" 14 | } 15 | 16 | metadata = { 17 | ssh_authorized_keys = var.ssh_public_key 18 | } 19 | 20 | 21 | } 22 | 23 | output "instance_ip_addr" { 24 | value = ["${oci_core_instance.instance1.public_ip}", 25 | "${oci_core_instance.instance1.private_ip}"] 26 | } 27 | 28 | 29 | -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/database.tf: -------------------------------------------------------------------------------- 1 | resource "random_string" "autonomous_database_admin_password" { 2 | length = 16 3 | min_numeric = 1 4 | min_lower = 1 5 | min_upper = 1 6 | min_special = 1 7 | } 8 | 9 | 10 | resource "oci_database_autonomous_database" "autonomous_database" { 11 | #Required 12 | admin_password = random_string.autonomous_database_admin_password.result 13 | compartment_id = oci_identity_compartment.compartimentotrial.id 14 | is_free_tier = "true" 15 | db_name = "adw" 16 | cpu_core_count = 1 17 | data_storage_size_in_tbs = 1 18 | 19 | #Optional 20 | db_version = "19c" 21 | db_workload = "DW" 22 | display_name = "adw" 23 | license_model = "LICENSE_INCLUDED" 24 | 25 | 26 | } 27 | 28 | 29 | output "autonomous_data_warehouse_admin_password" { 30 | value = random_string.autonomous_database_admin_password.result 31 | } -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/main.tf: -------------------------------------------------------------------------------- 1 | // Aqui enderca as principais variaveis do projeto 2 | 3 | 4 | 5 | variable "tenancy_ocid" {} 6 | 7 | 8 | 9 | provider "oci" { 10 | region = "us-ashburn-1" 11 | } 12 | 13 | 14 | 15 | 16 | data "oci_identity_availability_domain" "ads" { 17 | compartment_id = var.tenancy_ocid 18 | ad_number = 1 19 | } 20 | 21 | 22 | variable "ssh_public_key" {} -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/main.yaml: -------------------------------------------------------------------------------- 1 | # Title shown in Application Information tab. 2 | title: "Fast Track Oracle & Linux Tips" 3 | # Sub Title shown in Application Information tab. 4 | description: "Terraform para os modulos de IAM, Network e Compute" 5 | schemaVersion: 1.1.0 6 | version: "1.0" 7 | 8 | logoUrl: 9 | locale: "en" 10 | variableGroups: 11 | - title: "Insira sua chave aqui!" 12 | variables: 13 | - ${ssh_public_key} 14 | 15 | variables: 16 | ssh_public_key: 17 | type: string 18 | required: true 19 | title: Conteúdo do arquivo id_rsa.pub 20 | tenancy_ocid: 21 | type: string 22 | title: Não altere o seguinte valor! 23 | visible: false -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/network.tf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | resource "oci_core_vcn" "vcn_tform" { 5 | #Required 6 | cidr_block = "10.0.0.0/16" 7 | compartment_id = oci_identity_compartment.compartimentotrial.id 8 | #Optional 9 | display_name = "vcn-wizard" 10 | dns_label = "vcnwizard" 11 | } 12 | 13 | 14 | resource "oci_core_subnet" "subnet1" { 15 | #Required 16 | cidr_block = "10.0.1.0/24" 17 | compartment_id = oci_identity_compartment.compartimentotrial.id 18 | vcn_id = oci_core_vcn.vcn_tform.id 19 | #dhcp_options_id = "${oci_core_dhcp_options.test_dhcp_options.id}" 20 | display_name = "subnet-publica" 21 | dns_label = "subnet1" 22 | prohibit_public_ip_on_vnic = "false" 23 | route_table_id = oci_core_route_table.routetable1.id 24 | security_list_ids = ["${oci_core_security_list.SecurityListTForm.id}"] 25 | } 26 | 27 | /*resource "oci_core_subnet" "subnet1" { 28 | #Required 29 | cidr_block = "10.0.1.0/24" 30 | compartment_id = oci_identity_compartment.compartimentotrial.id 31 | vcn_id = oci_core_vcn.vcn_tform.id 32 | display_name = "subnet1" 33 | dns_label = "subnet1" 34 | prohibit_public_ip_on_vnic = "false" 35 | route_table_id = oci_core_route_table.routetable1.id 36 | security_list_ids = [oci_core_security_list.SecurityListTForm.id] 37 | }*/ 38 | 39 | 40 | 41 | resource "oci_core_subnet" "subnet2" { 42 | #Required 43 | cidr_block = "10.0.2.0/24" 44 | compartment_id = oci_identity_compartment.compartimentotrial.id 45 | vcn_id = oci_core_vcn.vcn_tform.id 46 | 47 | #Optional 48 | #availability_domain = Nao informar o AD implica em criar subnet regional 49 | #dhcp_options_id = "${oci_core_dhcp_options.test_dhcp_options.id}" 50 | display_name = "subnet-privada" 51 | #dns_label = "subnet2" 52 | prohibit_public_ip_on_vnic = "true" 53 | route_table_id = oci_core_route_table.routetable1.id 54 | #security_list_ids = "${var.subnet_security_list_ids}" 55 | } 56 | 57 | resource "oci_core_internet_gateway" "internetgateway1" { 58 | compartment_id = oci_identity_compartment.compartimentotrial.id 59 | display_name = "internetgateway1" 60 | vcn_id = oci_core_vcn.vcn_tform.id 61 | } 62 | 63 | resource "oci_core_route_table" "routetable1" { 64 | compartment_id = oci_identity_compartment.compartimentotrial.id 65 | vcn_id = oci_core_vcn.vcn_tform.id 66 | display_name = "routetable1" 67 | 68 | route_rules { 69 | cidr_block = "0.0.0.0/0" 70 | network_entity_id = oci_core_internet_gateway.internetgateway1.id 71 | } 72 | } 73 | 74 | 75 | #-----------------------------------------------------------------------------------------# 76 | 77 | resource "oci_core_security_list" "SecurityListTForm" { 78 | compartment_id = oci_identity_compartment.compartimentotrial.id 79 | vcn_id = oci_core_vcn.vcn_tform.id 80 | display_name = "Security List com Regras TForm" 81 | 82 | // allow outbound tcp traffic on all ports 83 | egress_security_rules { 84 | destination = "0.0.0.0/0" 85 | protocol = "6" 86 | } 87 | 88 | // allow outbound udp traffic on a port range 89 | /*egress_security_rules { 90 | #description = "RegraSaida" 91 | destination = "0.0.0.0/0" 92 | protocol = "17" // udp 93 | stateless = true 94 | 95 | udp_options { 96 | // These values correspond to the destination port range. 97 | min = 319 98 | max = 320 99 | } 100 | }*/ 101 | 102 | // allow inbound ssh traffic from a specific port 103 | ingress_security_rules { 104 | protocol = "6" // tcp 105 | source = "0.0.0.0/0" 106 | stateless = false 107 | 108 | tcp_options { 109 | #source_port_range { 110 | # min = 100 111 | # max = 100 112 | #} 113 | 114 | // These values correspond to the destination port range. 115 | min = 22 116 | max = 22 117 | } 118 | } 119 | 120 | // allow inbound icmp traffic of a specific type 121 | ingress_security_rules { 122 | #description = "Regra02" 123 | protocol = 1 124 | source = "0.0.0.0/0" 125 | stateless = true 126 | 127 | icmp_options { 128 | type = 3 129 | code = 4 130 | } 131 | } 132 | 133 | ingress_security_rules { 134 | protocol = "6" // tcp 135 | source = "0.0.0.0/0" 136 | stateless = false 137 | 138 | tcp_options { 139 | #source_port_range { 140 | # min = 80 141 | # max = 80 142 | #} 143 | 144 | // These values correspond to the destination port range. 145 | min = 80 146 | max = 80 147 | } 148 | } 149 | } -------------------------------------------------------------------------------- /Infrastructure/compute/LinuxTips-tf/storage.tf: -------------------------------------------------------------------------------- 1 | resource "oci_core_volume" "test_block_volume_paravirtualized" { 2 | availability_domain = data.oci_identity_availability_domain.ads.name 3 | compartment_id = oci_identity_compartment.compartimentotrial.id 4 | display_name = "StorageLinuxtips" 5 | size_in_gbs = 100 6 | } 7 | 8 | resource "oci_core_volume_attachment" "test_block_volume_attach_paravirtualized" { 9 | attachment_type = "paravirtualized" 10 | instance_id = oci_core_instance.instance1.id 11 | volume_id = oci_core_volume.test_block_volume_paravirtualized.id 12 | # Set this to attach the volume as read-only. 13 | #is_read_only = true 14 | } -------------------------------------------------------------------------------- /Infrastructure/compute/README.md: -------------------------------------------------------------------------------- 1 | ## LAB Compute 2 | 3 | Requisitos: 4 | - Compartimento criado 5 | - Rede criada 6 | 7 | 8 | ### Criar chave ssh 9 | 10 | 11 | Abra o Cloud shell no canto superior direito 12 | Dentro do terminal execute ssh-keygen -t rsa e dê enter até o processo encerrar, não coloque passphrase: 13 | 14 | ` 15 | 16 | adriano_ta@cloudshell:~ (us-ashburn-1)$ ssh-keygen -t rsa 17 | Generating public/private rsa key pair. 18 | Enter file in which to save the key (/home/adriano_ta/.ssh/id_rsa): 19 | Enter passphrase (empty for no passphrase): 20 | Enter same passphrase again: 21 | Your identification has been saved in /home/adriano_ta/.ssh/id_rsa. 22 | Your public key has been saved in /home/adriano_ta/.ssh/id_rsa.pub. 23 | The key fingerprint is: 24 | SHA256:DVk8TenKKy5fHgwsZzLz7sqGBg0tArNrycldAD59qWw adriano_ta@cd8f9900528e 25 | The key's randomart image is: 26 | +---[RSA 2048]----+ 27 | | .. ..o.. | 28 | |+ .. . oo o | 29 | |.= o.o o o | 30 | |o = +. . o . | 31 | |oo+E. = S... | 32 | |.*o.. O oo | 33 | |. . . . +. | 34 | | o.o..o.. | 35 | | . .o*=.. | 36 | +----[SHA256]-----+` 37 | 38 | Entre no diretório .ssh e copie o conteúdo do arquivo id_rsa.pub: 39 | 40 | 41 | 42 | adriano_ta@cloudshell:~ (us-ashburn-1)$ cd .ssh/ 43 | adriano_ta@cloudshell:.ssh (us-ashburn-1)$ cat id_rsa.pub 44 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCP+IWY958AvV7E1y56i3AehrSRF8CxrSt9Nn8wXKBp2NjmeiFpnpub+/mI5xmDYCbMIrZCXAEyB1uq6uLJBV70cjX9DfhMo7zGEYL0cJHBwmTkVl/e7vOLx4IeAa9dFj0Hl21IszcODEvaY1vchGCZiVVlgFHD6l7p3BlA5xGcwJg9SkSIUgm61mMsWssoZX1l2CW3AGHpwcnxQfF25HATl63j1Rb4oMmMZ5GHd8cfaRE+BCi+V7n6YgYgHkftZMEo68pgXYkcFmj15YJXs5bDduZlz4990vbBe3yuqhijSVuy7Edap8Y6G3vWCTup5adEVnAyxuSQTnKz5nLoAvrv adriano_ta@cd8f9900528e 45 | 46 | ![](https://i.imgur.com/4trnHXH.gif) 47 | 48 | 49 | ### Criar VM 50 | 51 | **Acessar o menu de Hamburguer -> Compute -> Instance -> Create Instance** 52 | 53 | - Name: vm-linuxtips 54 | 55 | #### Image And Shape: 56 | 57 | - Image: Oracle Linux 7.9 58 | - Shape: VM.Standard.E2.1.Micro 59 | 60 | #### Networking 61 | 62 | - Primary Network: VCN-Trial 63 | - Subnet: Public-Subnet 64 | 65 | #### Add SSH keys 66 | 67 | - Paste Public Keys 68 | - Colocar o conteúdo do arquivo id_rsa.pub gerado no Cloud Shell 69 | 70 | ![](https://i.imgur.com/NOpH57x.gif) 71 | 72 | 73 | #### Clicar em Create 74 | 75 | #### Acessar VM 76 | 77 | ![](https://i.imgur.com/Gs0Owxv.gif) 78 | 79 | -------------------------------------------------------------------------------- /MonitoringEventsNotifications/README.md: -------------------------------------------------------------------------------- 1 | ## Lab Monitoring, Events e Notifications 2 | 3 | 4 | 1 – Acessar o menu -> Developer Services -> Application Integration, clicar em Notifications, conforme a imagem abaixo: 5 | ![](images/item1.png) 6 | 7 | 2 – Clicar em Create Topic: 8 | ![](images/item2.png) 9 | 10 | 3 – Preencher o Name e Description com o seguintes valores: 11 | Name: topic_aulao 12 | Description: Topic criado para receber as notificações de eventos e alarmes do serviços provisionados no OCI. 13 | ![](images/item3.png) 14 | 15 | 4 – Clicar no botão **Create;** 16 | 17 | 5 – Com o Topic criado clique em seu nome para acessa-lo: 18 | ![](images/item5.png) 19 | 20 | 6 – Clicar no botão **Create Subscriptions**: 21 | ![](images/item6.png) 22 | 23 | 7 – Em **Protocol** selecionar a opção **E-mail**, e no Campo E-mail preencher o valor com seu endereço de e-mail: 24 | ![](images/item7.png) 25 | 26 | 27 | 8 – Clicar em **Create**: 28 | 29 | 30 | 9 – Com o a **Subscription** ativada o status estará pendente, vamos dar autorização para que o serviço de notifications do OCI envie notificações para seu e-mail: 31 | ![](images/item9.png) 32 | 33 | 10 – Acessar sua caixa de E-mail e abrir o E-mail com o título **Oracle Cloud Infrastructure Notifications Service Subscription Confirmation**: 34 | ![](images/item10.png) 35 | 36 | 11 – Clicar no link **Confirm Subscription**, você será redirecionado para o navegador onde vai receber a confirmação de subscrição conforme a imagem abaixo: 37 | ![](images/item11.png) 38 | 39 | 11 – Voltar para console do OCI; 40 | 41 | 12 – Confirmar que o **state** agora está com **Active**: 42 | ![](images/item13.png) 43 | 44 | 45 | 13 – Acessar o menu Compute -> Instances e localizar a VM criada no Lab de Compute: 46 | ![](images/item14.png) 47 | 48 | 14 – Selecionar a vm **vm-linuxtips** que você provisionou nos labs anteriores: 49 | ![](images/item15.png) 50 | 51 | 15 – Acessar o link **Metrics** no menu **Resources**: 52 | ![](images/item16.png) 53 | 54 | 16 – Vocês está vendo algumas metricas que podemos monitorar de uma VM; 55 | ![](images/item17.png) 56 | 57 | 17 – Clicar no botão **Options** no quadro **CPU Utilization**: 58 | ![](images/item18.png) 59 | 60 | 18 – Clique na opção **Create an Alarm on this Query**: 61 | 62 | 19 – Preencher Alarm name, Alarm Body e Alarm severity: 63 | 64 | **Alarm name** 65 | 66 | baixo uso de cpu 67 | 68 | **Alarm Body** 69 | 70 | vm de compute com baixo uso de processamento 71 | 72 | Alarm severity 73 | 74 | **Info** 75 | ![](images/item19.png) 76 | 77 | 20 – Utilize o scroll para preencher Metric description conforma a imagem abaixo: 78 | ![](images/item20.png) 79 | 80 | 21 – Em Metric dimensions selecione **resourceid** para **Dimension name** e em dimension value selecione a única opção disponível: 81 | 82 | ![](images/item21.png) 83 | 84 | 85 | 22 – O preenchimento ficara dessa maneira: 86 | ![](images/item22.png) 87 | 88 | 89 | 23 – Em Trigger rule vamos preencher conforme a imagem abaixo: 90 | ![](images/item23.png) 91 | 92 | 24 - A regra que configuramos no Trigger rule significa que toda vez que a utilização de CPU da VM estiver menor que 30% durante pelo menos 1 minuto seremos notificados; 93 | 94 | 25 – No grafico para guiar essa configuração temos em vermelho a condição que configuramos e em azul histórico da metrica que estamos monitorando. Desta maneira você consegue verificar nas ultimas horas quais seriam as situações que associariam um alarme; 95 | ![](images/item25.png) 96 | 97 | 26 – Em **Destinations** iremos selecionar os valores abaixo escolhendo o **topic_aulao** que criamos nos passos anteriores desse lab; 98 | ![](images/item26.png) 99 | 100 | 27 – Preencher as opções restantes conforme a imagem abaixo marcando a opção **Repeat Notification?,** Notification frequency = 60 minutes**;** 101 | ![](images/item27.png) 102 | 103 | 28 – Clicar em **Save alarm**; 104 | 105 | 29 – Receba a confirmação da criação do alarme; 106 | ![](images/item29.png) 107 | 108 | 30 – Aguardar um minuto para que alarme seja engatilhado pela condição que escolhemos; 109 | 110 | 31 – Verificar sua caixa de email com a notificação do alarme: 111 | ![](images/item30.png) 112 | 113 | 31 – Agora temos um monitoramento pro ativo olhando para o processamento de um VM E seremos acionados toda vez que a VM possuir baixo processamento; 114 | 115 | 32 – Agora vamos configurar Events; 116 | 117 | 33 – Acessar menu -> **Observability and Management** -> **Events Services** e clicar em **Rules**; 118 | ![](images/item33.png) 119 | 120 | 121 | 34 – No mesmo compartimento que já estamos utilizando e que também foi criado no lab de Identity; 122 | ![](images/item34.png) 123 | 124 | 35 – Clicar no botão **Create Rule**; 125 | 126 | 36 – Preencher Display Name e Description: 127 | 128 | **Display Name** 129 | 130 | capturar vm's reiniciadas ou desligadas 131 | 132 | **Description** 133 | 134 | essa regra captura eventos de desligamento e reinicio de vm's 135 | 136 | 37 – Configure Rule Conditions conforme a imagem abaixo: 137 | ![](images/item37.png) 138 | 139 | 38 – Clique no botão **+ Another Condition**: 140 | ![](images/item38.png) 141 | 142 | 39 – Selecione **Attribute** em **Condition**; 143 | 144 | 40 – Selecione Attribute Name com o valor **instanceActionType** e adicione os valores **stop** e **reset** digitando o valor e clicando em ** (New):** 145 | ![](images/item40.png) 146 | 147 | 41 – Ao final a regra deve estar dessa maneira: 148 | ![](images/item41.png) 149 | 150 | 151 | 42 – Em **Actions** vamos selecionar o **Type** como **Notification** o **compartimento** que já estamos utilizando e o **Topic** com **topic_aulao;** 152 | ![](images/item42.png) 153 | 154 | 43 – Clicar em **Create Rule**; 155 | 156 | 44 – Receber a confirmação de que a **Rule** foi criada com sucesso: 157 | ![](images/item44.png) 158 | 159 | 45 – Agora vamos reiniciar uma VM para testar a nossa regra; 160 | 161 | 46 – Voltar a VM que já haviamos criado menu -> Compute -> instances; 162 | ![](images/item46.png) 163 | 164 | 47 – Clicar no nome da vm **vm-linuxtips**; 165 | 166 | 48 – Clicar no botão **Stop**: 167 | ![](images/item48.png) 168 | 169 | 49 – Marcar a opção **Force Stop,** e clicar em **Force Stop Instance**; 170 | ![](images/item49.png) 171 | 172 | 50 – Aguardar a chegada do Email; 173 | ![](images/item50.png) 174 | 175 | 51 – Fim, caso voce queira pode ligar a máquina novamente e testar o evento de restart! -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item1.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item10.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item11.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item13.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item14.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item15.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item16.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item17.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item18.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item19.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item2.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item20.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item21.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item22.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item23.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item25.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item26.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item27.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item29.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item3.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item30.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item33.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item34.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item37.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item38.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item40.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item41.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item42.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item44.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item46.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item48.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item49.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item5.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item50.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item6.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item7.png -------------------------------------------------------------------------------- /MonitoringEventsNotifications/images/item9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/8d9a560c5dcc15fce4c0d09c2869e6fd5adb3398/MonitoringEventsNotifications/images/item9.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OCI-Fast-Track-Linuxtips 2 | Material para evento OCI Fast Track Linuxtips 3 | 4 | - [Infrastructure](/Infrastructure) 5 | - [Compartments](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/blob/main/Infrastructure/Compartments/Lab%201%20-%20Compartiments.pdf) 6 | - [Networking](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/blob/main/Infrastructure/Networking/Lab%202%20-%20Networking.pdf) 7 | - [Compute](/Infrastructure/compute) 8 | - [Storage](/Infrastructure/Storage) 9 | - [Autonomous Database](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/blob/main/Infrastructure/AutonomousDatabase/Lab5%20-%20Autonomous%20Database.pdf) 10 | 11 | - [DevApp](/DevApp) 12 | - [Monitoring, Events e Notifications](https://github.com/CeInnovationTeam/OCI-Fast-Track-Linuxtips/blob/main/MonitoringEventsNotifications/README.md) 13 | - [Data & AI](/Data&AI) 14 | --------------------------------------------------------------------------------