diff --git a/README.md b/README.md index f06c3cb46..583db5502 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ :information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE -:bar_chart:  There are currently **2376** exercises and questions +:bar_chart:  There are currently **2386** exercises and questions :books:  To learn more about DevOps and SRE, check the resources in [devops-resources](https://github.com/bregman-arie/devops-resources) repository @@ -20,36 +20,36 @@
- - - - + + + + - + - + - - + + - - - + + + - + - + @@ -62,22 +62,22 @@ - + - + - + - + - + - +
DevOps
DevOps
cicd
CI/CD
Git
Git
ansible
Ansible
DevOps
DevOps
cicd
CI/CD
Git
Git
ansible
Ansible
Network
Network
Linux
Linux
Linux
Linux
programming
Software Development
programming
Software Development
Python
Python
go
Go
Bash
Shell Scripting
kubernetes
Kubernetes
Bash
Shell Scripting
kubernetes
Kubernetes
Prometheus
Prometheus
Cloud
Cloud
aws
AWS
azure
Azure
Cloud
Cloud
aws
AWS
azure
Azure
Google Cloud Platform
Google Cloud Platform
openstack
OpenStack
security
Security
security
Security
Operating System
Operating System
Monitoring
Monitoring
Elastic
Elastic
Virtualization
Virtualization
DNS
DNS
DNS
DNS
Misc
Misc
Certificates
Certificates
Containers
Containers
Containers
Containers
sql
SQL
OpenShift
OpenShift
OpenShift
OpenShift
Storage
Storage
HR
Soft Skills
HR
Soft Skills
Terraform
Terraform
Terraform
Terraform
Mongo
Mongo
puppet
Puppet
Distributed
Distributed
you
Questions you can ask
perl
Perl
perl
Perl
Kafka
Kafka
Kafka
Kafka
@@ -570,8 +570,8 @@ ISP (Internet Service Provider) is the local internet company provider. |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -|Fork 101|Fork|[Link](exercises/os/fork_101.md)|[Link](exercises/os/solutions/fork_101_solution.md) -|Fork 102|Fork|[Link](exercises/os/fork_102.md)|[Link](exercises/os/solutions/fork_102_solution.md) +|Fork 101|Fork|[Link](topics/os/fork_101.md)|[Link](topics/os/solutions/fork_101_solution.md) +|Fork 102|Fork|[Link](topics/os/fork_102.md)|[Link](topics/os/solutions/fork_102_solution.md) ### Operating System - Self Assessment @@ -2798,7 +2798,7 @@ as key-value pair, document-oriented, etc. |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Functions vs. Comparisons | Query Improvements | [Exercise](exercises/sql/improve_query.md) | [Solution](exercises/sql/solutions/improve_query.md) +| Functions vs. Comparisons | Query Improvements | [Exercise](topics/sql/improve_query.md) | [Solution](topics/sql/solutions/improve_query.md) ### SQL Self Assessment @@ -4157,7 +4157,7 @@ It's an architecture in which data is and retrieved from a single, non-shared, s |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Highly Available "Hello World" | [Exercise](exercises/devops/ha_hello_world.md) | [Solution](exercises/devops/solutions/ha_hello_world.md) +| Highly Available "Hello World" | [Exercise](topics/devops/ha_hello_world.md) | [Solution](topics/devops/solutions/ha_hello_world.md)
What happens when you type in a URL in an address bar in a browser?
@@ -4202,6 +4202,14 @@ False. From [swagger.io](https://swagger.io/resources/articles/difference-betwee "An API definition is similar to an API specification in that it provides an understanding of how an API is organized and how the API functions. But the API definition is aimed at machine consumption instead of human consumption of APIs."
+
+What is an API gateway?
+
+ +
+What are the advantages of using/implementing an API gateway?
+
+
What is a Payload in API?
@@ -4858,7 +4866,7 @@ Not only this will tell you what is expected from you, it will also provide big |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Message Board Tables | Relational DB Tables | [Exercise](exercises/databases/table_for_message_board_system.md) | [Solution](exercises/databases/solutions/table_for_message_board_system.md) +| Message Board Tables | Relational DB Tables | [Exercise](topics/databases/table_for_message_board_system.md) | [Solution](topics/databases/solutions/table_for_message_board_system.md)
What is a relational database?
diff --git a/scripts/count_questions.sh b/scripts/count_questions.sh index 909c2d142..1db56bc33 100755 --- a/scripts/count_questions.sh +++ b/scripts/count_questions.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -echo $(( $(grep -E "\[Exercise\]|" -c README.md exercises/*/README.md | awk -F: '{ s+=$2 } END { print s }' ))) +echo $(( $(grep -E "\[Exercise\]|" -c README.md topics/*/README.md | awk -F: '{ s+=$2 } END { print s }' ))) diff --git a/exercises/ansible/README.md b/topics/ansible/README.md similarity index 100% rename from exercises/ansible/README.md rename to topics/ansible/README.md diff --git a/exercises/ansible/my_first_playbook.md b/topics/ansible/my_first_playbook.md similarity index 100% rename from exercises/ansible/my_first_playbook.md rename to topics/ansible/my_first_playbook.md diff --git a/exercises/ansible/my_first_task.md b/topics/ansible/my_first_task.md similarity index 100% rename from exercises/ansible/my_first_task.md rename to topics/ansible/my_first_task.md diff --git a/exercises/ansible/solutions/my_first_playbook.md b/topics/ansible/solutions/my_first_playbook.md similarity index 100% rename from exercises/ansible/solutions/my_first_playbook.md rename to topics/ansible/solutions/my_first_playbook.md diff --git a/exercises/ansible/solutions/my_first_task.md b/topics/ansible/solutions/my_first_task.md similarity index 100% rename from exercises/ansible/solutions/my_first_task.md rename to topics/ansible/solutions/my_first_task.md diff --git a/exercises/ansible/solutions/update_upgrade_task.md b/topics/ansible/solutions/update_upgrade_task.md similarity index 100% rename from exercises/ansible/solutions/update_upgrade_task.md rename to topics/ansible/solutions/update_upgrade_task.md diff --git a/exercises/ansible/update_upgrade_task.md b/topics/ansible/update_upgrade_task.md similarity index 100% rename from exercises/ansible/update_upgrade_task.md rename to topics/ansible/update_upgrade_task.md diff --git a/exercises/aws/README.md b/topics/aws/README.md similarity index 95% rename from exercises/aws/README.md rename to topics/aws/README.md index 615688cd7..40d426885 100644 --- a/exercises/aws/README.md +++ b/topics/aws/README.md @@ -65,93 +65,93 @@ |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Create a User | IAM | [Exercise](create_user.md) | [Solution](solutions/create_user.md) | | -| Password Policy | IAM | [Exercise](password_policy_and_mfa.md) | [Solution](solutions/password_policy_and_mfa.md) | | -| Create a role | IAM | [Exercise](create_role.md) | [Solution](solutions/create_role.md) | | -| Credential Report | IAM | [Exercise](credential_report.md) | [Solution](solutions/credential_report.md) | | -| Access Advisor | IAM | [Exercise](access_advisor.md) | [Solution](solutions/access_advisor.md) | | +| Create a User | IAM | [Exercise](exercises/create_user/exercise.md) | [Solution](exercises/create_user/solution.md) | | +| Password Policy | IAM | [Exercise](exercises/password_policy_and_mfa/exercise.md) | [Solution](exercises/password_policy_and_mfa/solution.md) | | +| Create a role | IAM | [Exercise](exercises/create_role/exercise.md) | [Solution](exercises/create_role/solution.md) | | +| Credential Report | IAM | [Exercise](exercises/credential_report/exercise.md) | [Solution](exercises/credential_report/solution.md) | | +| Access Advisor | IAM | [Exercise](exercises/access_advisor/exercise.md) | [Solution](exercises/access_advisor/solution.md) | | ### EC2 |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Launch EC2 web instance | EC2 | [Exercise](launch_ec2_web_instance.md) | [Solution](solutions/launch_ec2_web_instance.md) | | -| Security Groups | EC2 | [Exercise](security_groups.md) | [Solution](solutions/security_groups.md) | | -| IAM Roles | EC2, IAM | [Exercise](ec2_iam_roles.md) | [Solution](solutions/ec2_iam_roles.md) | | -| Spot Instances | EC2 | [Exercise](create_spot_instances.md) | [Solution](solutions/create_spot_instances.md) | | -| Elastic IP | EC2, Networking | [Exercise](elastic_ip.md) | [Solution](solutions/elastic_ip.md) | | -| Placement Groups Creation | EC2, Placement Groups | [Exercise](placement_groups.md) | [Solution](solutions/placement_groups.md) | | -| Elastic Network Interfaces | EC2, ENI | [Exercise](elastic_network_interfaces.md) | [Solution](solutions/elastic_network_interfaces.md) | | -| Hibernate an Instance | EC2 | [Exercise](hibernate_instance.md) | [Solution](solutions/hibernate_instance.md) | | -| Volume Creation | EC2, EBS | [Exercise](ebs_volume_creation.md) | [Solution](solutions/ebs_volume_creation.md) | | -| Snapshots | EC2, EBS | [Exercise](snapshots.md) | [Solution](solutions/snapshots.md) | | -| Create an AMI | EC2, AMI | [Exercise](create_ami.md) | [Solution](solutions/create_ami.md) | | -| Create EFS | EC2, EFS | [Exercise](create_efs.md) | [Solution](solutions/create_efs.md) | | +| Launch EC2 web instance | EC2 | [Exercise](exercises/launch_ec2_web_instance/exercise.md) | [Solution](exercises/launch_ec2_web_instance/solution.md) | | +| Security Groups | EC2 | [Exercise](exercises/security_groups/exercise.md) | [Solution](exercises/security_groups/solution.md) | | +| IAM Roles | EC2, IAM | [Exercise](exercises/ec2_iam_roles/exercise.md) | [Solution](exercises/ec2_iam_roles/solution.md) | | +| Spot Instances | EC2 | [Exercise](exercises/create_spot_instances/exercise.md) | [Solution](exercises/create_spot_instances/solution.md) | | +| Elastic IP | EC2, Networking | [Exercise](exercises/elastic_ip/exercise.md) | [Solution](exercises/elastic_ip/solution.md) | | +| Placement Groups Creation | EC2, Placement Groups | [Exercise](exercises/placement_groups/exercise.md) | [Solution](exercises/placement_groups/solution.md) | | +| Elastic Network Interfaces | EC2, ENI | [Exercise](exercises/elastic_network_interfaces/exercise.md) | [Solution](exercises/elastic_network_interfaces/solution.md) | | +| Hibernate an Instance | EC2 | [Exercise](exercises/hibernate_instance.md) | [Solution](exercises/hibernate_instance/solution.md) | | +| Volume Creation | EC2, EBS | [Exercise](exercises/ebs_volume_creation/exercise.md) | [Solution](exercises/ebs_volume_creation/solution.md) | | +| Snapshots | EC2, EBS | [Exercise](exercises/snapshots/exercise.md) | [Solution](exercises/snapshots/solution.md) | | +| Create an AMI | EC2, AMI | [Exercise](exercises/create_ami/exercise.md) | [Solution](exercises/create_ami/solution.md) | | +| Create EFS | EC2, EFS | [Exercise](exercises/create_efs/exercise.md) | [Solution](exercises/create_efs/solution.md) | | ### ELB |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Application Load Balancer | ELB, ALB | [Exercise](app_load_balancer.md) | [Solution](solutions/app_load_balancer.md) | | -| Multiple Target Groups | ELB, ALB | [Exercise](alb_multiple_target_groups.md) | [Solution](solutions/alb_multiple_target_groups.md) | | -| Network Load Balancer | ELB, NLB | [Exercise](network_load_balancer.md) | [Solution](solutions/network_load_balancer.md) | | +| Application Load Balancer | ELB, ALB | [Exercise](exercises/app_load_balancer/exercise.md) | [Solution](exercises/app_load_balancer/solution.md) | | +| Multiple Target Groups | ELB, ALB | [Exercise](exercises/alb_multiple_target_groups/exercise.md) | [Solution](exercises/alb_multiple_target_groups/solution.md) | | +| Network Load Balancer | ELB, NLB | [Exercise](exercises/network_load_balancer/exercise.md) | [Solution](exercises/network_load_balancer/solution.md) | | ### Auto Scaling Groups |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Auto Scaling Groups Basics | ASG | [Exercise](auto_scaling_groups_basics.md) | [Solution](solutions/auto_scaling_groups_basics.md) | | -| Dynamic Scaling Policy | ASG, Policies | [Exercise](asg_dynamic_scaling_policy.md) | [Solution](solutions/asg_dynamic_scaling_policy.md) | | +| Auto Scaling Groups Basics | ASG | [Exercise](exercises/auto_scaling_groups_basics/exercise.md) | [Solution](exercises/auto_scaling_groups_basics/solution.md) | | +| Dynamic Scaling Policy | ASG, Policies | [Exercise](exercises/asg_dynamic_scaling_policy/exercise.md) | [Solution](exercises/asg_dynamic_scaling_policy/solution.md) | | ### VPC |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| My First VPC | VPC | [Exercise](new_vpc.md) | [Solution](solutions/new_vpc.md) | | -| Subnets | VPC | [Exercise](subnets.md) | [Solution](solutions/subnets.md) | | +| My First VPC | VPC | [Exercise](exercises/new_vpc/exercise.md) | [Solution](exercises/new_vpc/solution.md) | | +| Subnets | VPC | [Exercise](exercises/subnets/exercise.md) | [Solution](exercises/subnets/solution.md) | | ### Databases |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| MySQL DB | RDS | [Exercise](mysql_db.md) | [Solution](solutions/mysql_db.md) | | -| Aurora DB | RDS | [Exercise](aurora_db.md) | [Solution](solutions/aurora_db.md) | | -| ElastiCache | ElastiCache | [Exercise](elasticache.md) | [Solution](solutions/elasticache.md) | | +| MySQL DB | RDS | [Exercise](exercises/mysql_db/exercise.md) | [Solution](exercises/mysql_db/solution.md) | | +| Aurora DB | RDS | [Exercise](exercises/aurora_db/exercise.md) | [Solution](exercises/aurora_db/solution.md) | | +| ElastiCache | ElastiCache | [Exercise](exercises/elasticache/exercise.md) | [Solution](exercises/elasticache/solution.md) | | ### DNS |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -Register Domain | Route 53 | [Exercise](register_domain.md) | [Solution](solutions/register_domain.md) | | -Creating Records | Route 53 | [Exercise](creating_records.md) | [Solution](solutions/creating_records.md) | | -Health Checks | Route 53 | [Exercise](health_checks.md) | [Solution](solutions/health_checks.md) | | -Failover | Route 53 | [Exercise](route_53_failover.md) | [Solution](solutions/route_53_failover.md) | | +Register Domain | Route 53 | [Exercise](exercises/register_domain/exercise.md) | [Solution](exercises/register_domain/solution.md) | | +Creating Records | Route 53 | [Exercise](exercises/creating_records/exercise.md) | [Solution](exercises/creating_records/solution.md) | | +Health Checks | Route 53 | [Exercise](exercises/health_checks/exercise.md) | [Solution](exercises/health_checks/solution.md) | | +Failover | Route 53 | [Exercise](exercises/route_53_failover/exercise.md) | [Solution](exercises/route_53_failover/solution.md) | | ### Containers |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| ECS Task | ECS, Fargate | [Exercise](ecs_task.md) | [Solution](solutions/ecs_task.md) | | +| ECS Task | ECS, Fargate | [Exercise](exercises/ecs_task/exercise.md) | [Solution](exercises/ecs_task/solution.md) | | ### Lambda |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Hello Function | Lambda | [Exercise](hello_function.md) | [Solution](solutions/hello_function.md) | | -| URL Function | Lambda | [Exercise](url_function.md) | [Solution](solutions/url_function.md) | | +| Hello Function | Lambda | [Exercise](exercises/hello_function/exercise.md) | [Solution](exercises/hello_function/solution.md) | | +| URL Function | Lambda | [Exercise](exercises/url_function/exercise.md) | [Solution](exercises/url_function/solution.md) | | ### Elastic Beanstalk |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Simple Elastic Beanstalk Node.js app | Elastic Beanstalk | [Exercise](elastic_beanstalk_simple.md) | [Solution](solutions/elastic_beanstalk_simple.md) | | +| Simple Elastic Beanstalk Node.js app | Elastic Beanstalk | [Exercise](exercises/elastic_beanstalk_simple/exercise.md) | [Solution](exercises/elastic_beanstalk_simple/solution.md) | | ### Misc |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Budget Setup | Budget | [Exercise](budget_setup.md) | [Solution](solutions/budget_setup.md) | | -| No Application :'( | Troubleshooting | [Exercise](no_application.md) | [Solution](solutions/no_application.md) | | +| Budget Setup | Budget | [Exercise](exercises/budget_setup/exercise.md) | [Solution](exercises/budget_setup/solution.md) | | +| No Application :'( | Troubleshooting | [Exercise](exercises/no_application/exercise.md) | [Solution](exercises/no_application/solution.md) | | ## Questions diff --git a/exercises/aws/access_advisor.md b/topics/aws/exercises/access_advisor/exercise.md similarity index 82% rename from exercises/aws/access_advisor.md rename to topics/aws/exercises/access_advisor/exercise.md index 8aa7c06a9..bb3946912 100644 --- a/exercises/aws/access_advisor.md +++ b/topics/aws/exercises/access_advisor/exercise.md @@ -7,3 +7,7 @@ Go to the Access Advisor and answer the following questions regarding one of the 1. Are there services this user never accessed? 2. What was the last service the user has accessed? 3. What the Access Advisor is used/good for? + +## Solution + +Click [here to view to solution](solution.md) \ No newline at end of file diff --git a/exercises/aws/solutions/access_advisor.md b/topics/aws/exercises/access_advisor/solution.md similarity index 100% rename from exercises/aws/solutions/access_advisor.md rename to topics/aws/exercises/access_advisor/solution.md diff --git a/exercises/aws/alb_multiple_target_groups.md b/topics/aws/exercises/alb_multiple_target_groups/exercise.md similarity index 100% rename from exercises/aws/alb_multiple_target_groups.md rename to topics/aws/exercises/alb_multiple_target_groups/exercise.md diff --git a/exercises/aws/solutions/alb_multiple_target_groups.md b/topics/aws/exercises/alb_multiple_target_groups/solution.md similarity index 100% rename from exercises/aws/solutions/alb_multiple_target_groups.md rename to topics/aws/exercises/alb_multiple_target_groups/solution.md diff --git a/exercises/aws/app_load_balancer.md b/topics/aws/exercises/app_load_balancer/exercise.md similarity index 100% rename from exercises/aws/app_load_balancer.md rename to topics/aws/exercises/app_load_balancer/exercise.md diff --git a/exercises/aws/solutions/app_load_balancer.md b/topics/aws/exercises/app_load_balancer/solution.md similarity index 100% rename from exercises/aws/solutions/app_load_balancer.md rename to topics/aws/exercises/app_load_balancer/solution.md diff --git a/exercises/aws/asg_dynamic_scaling_policy.md b/topics/aws/exercises/asg_dynamic_scaling_policy/exercise.md similarity index 100% rename from exercises/aws/asg_dynamic_scaling_policy.md rename to topics/aws/exercises/asg_dynamic_scaling_policy/exercise.md diff --git a/exercises/aws/solutions/asg_dynamic_scaling_policy.md b/topics/aws/exercises/asg_dynamic_scaling_policy/solution.md similarity index 100% rename from exercises/aws/solutions/asg_dynamic_scaling_policy.md rename to topics/aws/exercises/asg_dynamic_scaling_policy/solution.md diff --git a/exercises/aws/aurora_db.md b/topics/aws/exercises/aurora_db/exercise.md similarity index 100% rename from exercises/aws/aurora_db.md rename to topics/aws/exercises/aurora_db/exercise.md diff --git a/exercises/aws/solutions/aurora_db.md b/topics/aws/exercises/aurora_db/solution.md similarity index 100% rename from exercises/aws/solutions/aurora_db.md rename to topics/aws/exercises/aurora_db/solution.md diff --git a/exercises/aws/auto_scaling_groups_basics.md b/topics/aws/exercises/auto_scaling_groups_basics/exercise.md similarity index 100% rename from exercises/aws/auto_scaling_groups_basics.md rename to topics/aws/exercises/auto_scaling_groups_basics/exercise.md diff --git a/exercises/aws/solutions/auto_scaling_groups_basics.md b/topics/aws/exercises/auto_scaling_groups_basics/solution.md similarity index 100% rename from exercises/aws/solutions/auto_scaling_groups_basics.md rename to topics/aws/exercises/auto_scaling_groups_basics/solution.md diff --git a/exercises/aws/budget_setup.md b/topics/aws/exercises/budget_setup/exercise.md similarity index 100% rename from exercises/aws/budget_setup.md rename to topics/aws/exercises/budget_setup/exercise.md diff --git a/exercises/aws/solutions/budget_setup.md b/topics/aws/exercises/budget_setup/solution.md similarity index 100% rename from exercises/aws/solutions/budget_setup.md rename to topics/aws/exercises/budget_setup/solution.md diff --git a/exercises/aws/create_ami.md b/topics/aws/exercises/create_ami/exercise.md similarity index 100% rename from exercises/aws/create_ami.md rename to topics/aws/exercises/create_ami/exercise.md diff --git a/exercises/aws/solutions/create_ami.md b/topics/aws/exercises/create_ami/solution.md similarity index 100% rename from exercises/aws/solutions/create_ami.md rename to topics/aws/exercises/create_ami/solution.md diff --git a/exercises/aws/create_efs.md b/topics/aws/exercises/create_efs/exercise.md similarity index 100% rename from exercises/aws/create_efs.md rename to topics/aws/exercises/create_efs/exercise.md diff --git a/exercises/aws/solutions/create_efs.md b/topics/aws/exercises/create_efs/solution.md similarity index 100% rename from exercises/aws/solutions/create_efs.md rename to topics/aws/exercises/create_efs/solution.md diff --git a/exercises/aws/create_role.md b/topics/aws/exercises/create_role/exercise.md similarity index 100% rename from exercises/aws/create_role.md rename to topics/aws/exercises/create_role/exercise.md diff --git a/exercises/aws/solutions/create_role.md b/topics/aws/exercises/create_role/solution.md similarity index 100% rename from exercises/aws/solutions/create_role.md rename to topics/aws/exercises/create_role/solution.md diff --git a/exercises/aws/create_spot_instances.md b/topics/aws/exercises/create_spot_instances/exercise.md similarity index 100% rename from exercises/aws/create_spot_instances.md rename to topics/aws/exercises/create_spot_instances/exercise.md diff --git a/exercises/aws/solutions/create_spot_instances.md b/topics/aws/exercises/create_spot_instances/solution.md similarity index 100% rename from exercises/aws/solutions/create_spot_instances.md rename to topics/aws/exercises/create_spot_instances/solution.md diff --git a/exercises/aws/create_user.md b/topics/aws/exercises/create_user/exercise.md similarity index 100% rename from exercises/aws/create_user.md rename to topics/aws/exercises/create_user/exercise.md diff --git a/exercises/aws/solutions/create_user.md b/topics/aws/exercises/create_user/solution.md similarity index 100% rename from exercises/aws/solutions/create_user.md rename to topics/aws/exercises/create_user/solution.md diff --git a/exercises/aws/creating_records.md b/topics/aws/exercises/creating_records/exercise.md similarity index 100% rename from exercises/aws/creating_records.md rename to topics/aws/exercises/creating_records/exercise.md diff --git a/exercises/aws/solutions/creating_records.md b/topics/aws/exercises/creating_records/solution.md similarity index 100% rename from exercises/aws/solutions/creating_records.md rename to topics/aws/exercises/creating_records/solution.md diff --git a/topics/aws/exercises/credential_report/exercise.md b/topics/aws/exercises/credential_report/exercise.md new file mode 100644 index 000000000..d62ecaaf8 --- /dev/null +++ b/topics/aws/exercises/credential_report/exercise.md @@ -0,0 +1,9 @@ +## AWS - Credential Report + +### Objectives + +1. Create/Download a credential report +2. Answer the following questions based on the report: + 1. Are there users with MFA not activated? + 2. Are there users with password enabled that didn't +3. Explain the use case for using the credential report diff --git a/exercises/aws/solutions/credential_report.md b/topics/aws/exercises/credential_report/solution.md similarity index 100% rename from exercises/aws/solutions/credential_report.md rename to topics/aws/exercises/credential_report/solution.md diff --git a/exercises/aws/ebs_volume_creation.md b/topics/aws/exercises/ebs_volume_creation/exercise.md similarity index 100% rename from exercises/aws/ebs_volume_creation.md rename to topics/aws/exercises/ebs_volume_creation/exercise.md diff --git a/exercises/aws/solutions/ebs_volume_creation.md b/topics/aws/exercises/ebs_volume_creation/solution.md similarity index 100% rename from exercises/aws/solutions/ebs_volume_creation.md rename to topics/aws/exercises/ebs_volume_creation/solution.md diff --git a/exercises/aws/ec2_iam_roles.md b/topics/aws/exercises/ec2_iam_roles/exercise.md similarity index 100% rename from exercises/aws/ec2_iam_roles.md rename to topics/aws/exercises/ec2_iam_roles/exercise.md diff --git a/exercises/aws/solutions/ec2_iam_roles.md b/topics/aws/exercises/ec2_iam_roles/solution.md similarity index 100% rename from exercises/aws/solutions/ec2_iam_roles.md rename to topics/aws/exercises/ec2_iam_roles/solution.md diff --git a/exercises/aws/ecs_task.md b/topics/aws/exercises/ecs_task/exercise.md similarity index 100% rename from exercises/aws/ecs_task.md rename to topics/aws/exercises/ecs_task/exercise.md diff --git a/exercises/aws/solutions/ecs_task.md b/topics/aws/exercises/ecs_task/solution.md similarity index 100% rename from exercises/aws/solutions/ecs_task.md rename to topics/aws/exercises/ecs_task/solution.md diff --git a/exercises/aws/elastic_beanstalk_simple.md b/topics/aws/exercises/elastic_beanstalk_simple/exercise.md similarity index 100% rename from exercises/aws/elastic_beanstalk_simple.md rename to topics/aws/exercises/elastic_beanstalk_simple/exercise.md diff --git a/exercises/aws/solutions/elastic_beanstalk_simple.md b/topics/aws/exercises/elastic_beanstalk_simple/solution.md similarity index 100% rename from exercises/aws/solutions/elastic_beanstalk_simple.md rename to topics/aws/exercises/elastic_beanstalk_simple/solution.md diff --git a/exercises/aws/elastic_ip.md b/topics/aws/exercises/elastic_ip/exercise.md similarity index 100% rename from exercises/aws/elastic_ip.md rename to topics/aws/exercises/elastic_ip/exercise.md diff --git a/exercises/aws/solutions/elastic_ip.md b/topics/aws/exercises/elastic_ip/solution.md similarity index 100% rename from exercises/aws/solutions/elastic_ip.md rename to topics/aws/exercises/elastic_ip/solution.md diff --git a/exercises/aws/elastic_network_interfaces.md b/topics/aws/exercises/elastic_network_interfaces/exercise.md similarity index 100% rename from exercises/aws/elastic_network_interfaces.md rename to topics/aws/exercises/elastic_network_interfaces/exercise.md diff --git a/exercises/aws/solutions/elastic_network_interfaces.md b/topics/aws/exercises/elastic_network_interfaces/solution.md similarity index 100% rename from exercises/aws/solutions/elastic_network_interfaces.md rename to topics/aws/exercises/elastic_network_interfaces/solution.md diff --git a/exercises/aws/elasticache.md b/topics/aws/exercises/elasticache/exercise.md similarity index 100% rename from exercises/aws/elasticache.md rename to topics/aws/exercises/elasticache/exercise.md diff --git a/exercises/aws/solutions/elasticache.md b/topics/aws/exercises/elasticache/solution.md similarity index 100% rename from exercises/aws/solutions/elasticache.md rename to topics/aws/exercises/elasticache/solution.md diff --git a/exercises/aws/health_checks.md b/topics/aws/exercises/health_checks/exercise.md similarity index 100% rename from exercises/aws/health_checks.md rename to topics/aws/exercises/health_checks/exercise.md diff --git a/exercises/aws/solutions/health_checks.md b/topics/aws/exercises/health_checks/solution.md similarity index 100% rename from exercises/aws/solutions/health_checks.md rename to topics/aws/exercises/health_checks/solution.md diff --git a/exercises/aws/hello_function.md b/topics/aws/exercises/hello_function/exercise.md similarity index 100% rename from exercises/aws/hello_function.md rename to topics/aws/exercises/hello_function/exercise.md diff --git a/exercises/aws/solutions/hello_function.md b/topics/aws/exercises/hello_function/solution.md similarity index 100% rename from exercises/aws/solutions/hello_function.md rename to topics/aws/exercises/hello_function/solution.md diff --git a/exercises/aws/hibernate_instance.md b/topics/aws/exercises/hibernate_instance/exercise.md similarity index 100% rename from exercises/aws/hibernate_instance.md rename to topics/aws/exercises/hibernate_instance/exercise.md diff --git a/exercises/aws/solutions/hibernate_instance.md b/topics/aws/exercises/hibernate_instance/solution.md similarity index 100% rename from exercises/aws/solutions/hibernate_instance.md rename to topics/aws/exercises/hibernate_instance/solution.md diff --git a/exercises/aws/launch_ec2_web_instance.md b/topics/aws/exercises/launch_ec2_web_instance/exercise.md similarity index 100% rename from exercises/aws/launch_ec2_web_instance.md rename to topics/aws/exercises/launch_ec2_web_instance/exercise.md diff --git a/exercises/aws/solutions/launch_ec2_web_instance.md b/topics/aws/exercises/launch_ec2_web_instance/solution.md similarity index 100% rename from exercises/aws/solutions/launch_ec2_web_instance.md rename to topics/aws/exercises/launch_ec2_web_instance/solution.md diff --git a/exercises/aws/mysql_db.md b/topics/aws/exercises/mysql_db/exercise.md similarity index 100% rename from exercises/aws/mysql_db.md rename to topics/aws/exercises/mysql_db/exercise.md diff --git a/exercises/aws/solutions/mysql_db.md b/topics/aws/exercises/mysql_db/solution.md similarity index 100% rename from exercises/aws/solutions/mysql_db.md rename to topics/aws/exercises/mysql_db/solution.md diff --git a/exercises/aws/network_load_balancer.md b/topics/aws/exercises/network_load_balancer/exercise.md similarity index 100% rename from exercises/aws/network_load_balancer.md rename to topics/aws/exercises/network_load_balancer/exercise.md diff --git a/exercises/aws/solutions/network_load_balancer.md b/topics/aws/exercises/network_load_balancer/solution.md similarity index 100% rename from exercises/aws/solutions/network_load_balancer.md rename to topics/aws/exercises/network_load_balancer/solution.md diff --git a/exercises/aws/new_vpc.md b/topics/aws/exercises/new_vpc/exercise.md similarity index 100% rename from exercises/aws/new_vpc.md rename to topics/aws/exercises/new_vpc/exercise.md diff --git a/exercises/aws/solutions/new_vpc.md b/topics/aws/exercises/new_vpc/solution.md similarity index 100% rename from exercises/aws/solutions/new_vpc.md rename to topics/aws/exercises/new_vpc/solution.md diff --git a/exercises/aws/no_application.md b/topics/aws/exercises/no_application/exercise.md similarity index 100% rename from exercises/aws/no_application.md rename to topics/aws/exercises/no_application/exercise.md diff --git a/exercises/aws/solutions/no_application.md b/topics/aws/exercises/no_application/solution.md similarity index 100% rename from exercises/aws/solutions/no_application.md rename to topics/aws/exercises/no_application/solution.md diff --git a/exercises/aws/password_policy_and_mfa.md b/topics/aws/exercises/password_policy_and_mfa/exercise.md similarity index 100% rename from exercises/aws/password_policy_and_mfa.md rename to topics/aws/exercises/password_policy_and_mfa/exercise.md diff --git a/exercises/aws/solutions/password_policy_and_mfa.md b/topics/aws/exercises/password_policy_and_mfa/solution.md similarity index 100% rename from exercises/aws/solutions/password_policy_and_mfa.md rename to topics/aws/exercises/password_policy_and_mfa/solution.md diff --git a/exercises/aws/placement_groups.md b/topics/aws/exercises/placement_groups/exercise.md similarity index 100% rename from exercises/aws/placement_groups.md rename to topics/aws/exercises/placement_groups/exercise.md diff --git a/exercises/aws/solutions/placement_groups.md b/topics/aws/exercises/placement_groups/solution.md similarity index 100% rename from exercises/aws/solutions/placement_groups.md rename to topics/aws/exercises/placement_groups/solution.md diff --git a/exercises/aws/register_domain.md b/topics/aws/exercises/register_domain/exercise.md similarity index 100% rename from exercises/aws/register_domain.md rename to topics/aws/exercises/register_domain/exercise.md diff --git a/exercises/aws/solutions/register_domain.md b/topics/aws/exercises/register_domain/solution.md similarity index 100% rename from exercises/aws/solutions/register_domain.md rename to topics/aws/exercises/register_domain/solution.md diff --git a/exercises/aws/route_53_failover.md b/topics/aws/exercises/route_53_failover/exercise.md similarity index 100% rename from exercises/aws/route_53_failover.md rename to topics/aws/exercises/route_53_failover/exercise.md diff --git a/exercises/aws/solutions/route_53_failover.md b/topics/aws/exercises/route_53_failover/solution.md similarity index 100% rename from exercises/aws/solutions/route_53_failover.md rename to topics/aws/exercises/route_53_failover/solution.md diff --git a/exercises/aws/security_groups.md b/topics/aws/exercises/security_groups/exercise.md similarity index 88% rename from exercises/aws/security_groups.md rename to topics/aws/exercises/security_groups/exercise.md index 8b2b7faf3..302666bcc 100644 --- a/exercises/aws/security_groups.md +++ b/topics/aws/exercises/security_groups/exercise.md @@ -14,3 +14,7 @@ For this exercise you'll need: 3. Can you still access the application? What do you see/get? 4. Add back the rule 5. Can you access the application now? + +## Solution + +Click [here to view to solution](solution.md) \ No newline at end of file diff --git a/exercises/aws/solutions/security_groups.md b/topics/aws/exercises/security_groups/solution.md similarity index 100% rename from exercises/aws/solutions/security_groups.md rename to topics/aws/exercises/security_groups/solution.md diff --git a/topics/aws/exercises/snapshots/exercise.md b/topics/aws/exercises/snapshots/exercise.md new file mode 100644 index 000000000..7e754ac1a --- /dev/null +++ b/topics/aws/exercises/snapshots/exercise.md @@ -0,0 +1,16 @@ +## AWS EC2 - EBS Snapshots + +### Requirements + +EBS Volume + +### Objectives + +A. Create a snapshot of an EBS volume +B. Verify the snapshot was created +C. Move the data to another region +D. Create a volume out of it in a different AZ + +## Solution + +Click [here to view to solution](solution.md) \ No newline at end of file diff --git a/exercises/aws/solutions/snapshots.md b/topics/aws/exercises/snapshots/solution.md similarity index 100% rename from exercises/aws/solutions/snapshots.md rename to topics/aws/exercises/snapshots/solution.md diff --git a/exercises/aws/subnets.md b/topics/aws/exercises/subnets/exercise.md similarity index 87% rename from exercises/aws/subnets.md rename to topics/aws/exercises/subnets/exercise.md index 7892f184d..5a48aa39e 100644 --- a/exercises/aws/subnets.md +++ b/topics/aws/exercises/subnets/exercise.md @@ -17,3 +17,7 @@ Single newly created VPC 1. CIDR: 10.0.2.0/24 2. Name: NewSubnet3 3. Different AZ compared to previous subnets + +## Solution + +Click [here to view to solution](solution.md) \ No newline at end of file diff --git a/exercises/aws/solutions/subnets.md b/topics/aws/exercises/subnets/solution.md similarity index 100% rename from exercises/aws/solutions/subnets.md rename to topics/aws/exercises/subnets/solution.md diff --git a/exercises/aws/url_function.md b/topics/aws/exercises/url_function/exercise.md similarity index 65% rename from exercises/aws/url_function.md rename to topics/aws/exercises/url_function/exercise.md index 8fcf5903b..0cb672ea0 100644 --- a/exercises/aws/url_function.md +++ b/topics/aws/exercises/url_function/exercise.md @@ -1,3 +1,7 @@ ## URL Function Create a basic AWS Lambda function that will be triggered when you enter a URL in the browser + +## Solution + +Click [here to view to solution](solution.md) \ No newline at end of file diff --git a/exercises/aws/solutions/url_function.md b/topics/aws/exercises/url_function/solution.md similarity index 100% rename from exercises/aws/solutions/url_function.md rename to topics/aws/exercises/url_function/solution.md diff --git a/exercises/azure/README.md b/topics/azure/README.md similarity index 80% rename from exercises/azure/README.md rename to topics/azure/README.md index 166525960..a6104767b 100644 --- a/exercises/azure/README.md +++ b/topics/azure/README.md @@ -1,4 +1,17 @@ -## Azure +# Azure + +- [Azure](#azure) + - [Questions](#questions) + - [Azure 101](#azure-101) + - [Azure Resource Manager](#azure-resource-manager) + - [Compute](#compute) + - [Network](#network) + - [Storage](#storage) + - [Security](#security) + +## Questions + +### Azure 101
What is Azure Portal?
@@ -30,7 +43,21 @@ An availability set is a logical grouping of VMs that allows Azure to understand Explain Azure managed disks
-#### Azure - Compute +### Azure Resource Manager + +
+Explain what's Azure Resource Manager
+ +From [Azure docs](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/overview): "Azure Resource Manager is the deployment and management service for Azure. It provides a management layer that enables you to create, update, and delete resources in your Azure account. You use management features, like access control, locks, and tags, to secure and organize your resources after deployment." +
+ +
+What's an Azure Resource Group?
+ +From [Azure docs](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal): "A resource group is a container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as a group." +
+ +### Compute
What Azure compute services are you familiar with?
@@ -87,7 +114,7 @@ Running parallel and high-performance computing applications What "Azure Kubernetes" service is used for?
-#### Azure - Network +### Network
What Azure network services are you familiar with?
@@ -101,7 +128,7 @@ Running parallel and high-performance computing applications What is the N-tier architecture?
-#### Azure Storage +### Storage
What Azure storage services are you familiar with?
@@ -111,7 +138,7 @@ Running parallel and high-performance computing applications What storage options Azure supports?
-#### Azure Security +### Security
What is the Azure Security Center? What are some of its features?
diff --git a/exercises/cicd/README.md b/topics/cicd/README.md similarity index 100% rename from exercises/cicd/README.md rename to topics/cicd/README.md diff --git a/exercises/cicd/ci_for_open_source_project.md b/topics/cicd/ci_for_open_source_project.md similarity index 100% rename from exercises/cicd/ci_for_open_source_project.md rename to topics/cicd/ci_for_open_source_project.md diff --git a/exercises/cicd/deploy_to_kubernetes.md b/topics/cicd/deploy_to_kubernetes.md similarity index 100% rename from exercises/cicd/deploy_to_kubernetes.md rename to topics/cicd/deploy_to_kubernetes.md diff --git a/exercises/cicd/remove_builds.md b/topics/cicd/remove_builds.md similarity index 100% rename from exercises/cicd/remove_builds.md rename to topics/cicd/remove_builds.md diff --git a/exercises/cicd/remove_jobs.md b/topics/cicd/remove_jobs.md similarity index 100% rename from exercises/cicd/remove_jobs.md rename to topics/cicd/remove_jobs.md diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/Jenkinsfile b/topics/cicd/solutions/deploy_to_kubernetes/Jenkinsfile similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/Jenkinsfile rename to topics/cicd/solutions/deploy_to_kubernetes/Jenkinsfile diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/README.md b/topics/cicd/solutions/deploy_to_kubernetes/README.md similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/README.md rename to topics/cicd/solutions/deploy_to_kubernetes/README.md diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/deploy.yml b/topics/cicd/solutions/deploy_to_kubernetes/deploy.yml similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/deploy.yml rename to topics/cicd/solutions/deploy_to_kubernetes/deploy.yml diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/helloworld.yml b/topics/cicd/solutions/deploy_to_kubernetes/helloworld.yml similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/helloworld.yml rename to topics/cicd/solutions/deploy_to_kubernetes/helloworld.yml diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/html/css/normalize.css b/topics/cicd/solutions/deploy_to_kubernetes/html/css/normalize.css similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/html/css/normalize.css rename to topics/cicd/solutions/deploy_to_kubernetes/html/css/normalize.css diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/html/css/skeleton.css b/topics/cicd/solutions/deploy_to_kubernetes/html/css/skeleton.css similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/html/css/skeleton.css rename to topics/cicd/solutions/deploy_to_kubernetes/html/css/skeleton.css diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/html/images/favicon.png b/topics/cicd/solutions/deploy_to_kubernetes/html/images/favicon.png similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/html/images/favicon.png rename to topics/cicd/solutions/deploy_to_kubernetes/html/images/favicon.png diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/html/index.html b/topics/cicd/solutions/deploy_to_kubernetes/html/index.html similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/html/index.html rename to topics/cicd/solutions/deploy_to_kubernetes/html/index.html diff --git a/exercises/cicd/solutions/deploy_to_kubernetes/inventory b/topics/cicd/solutions/deploy_to_kubernetes/inventory similarity index 100% rename from exercises/cicd/solutions/deploy_to_kubernetes/inventory rename to topics/cicd/solutions/deploy_to_kubernetes/inventory diff --git a/exercises/cicd/solutions/remove_builds_solution.groovy b/topics/cicd/solutions/remove_builds_solution.groovy similarity index 100% rename from exercises/cicd/solutions/remove_builds_solution.groovy rename to topics/cicd/solutions/remove_builds_solution.groovy diff --git a/exercises/cicd/solutions/remove_jobs_solution.groovy b/topics/cicd/solutions/remove_jobs_solution.groovy similarity index 100% rename from exercises/cicd/solutions/remove_jobs_solution.groovy rename to topics/cicd/solutions/remove_jobs_solution.groovy diff --git a/exercises/cloud/README.md b/topics/cloud/README.md similarity index 100% rename from exercises/cloud/README.md rename to topics/cloud/README.md diff --git a/exercises/cloud_slack_bot.md b/topics/cloud_slack_bot.md similarity index 100% rename from exercises/cloud_slack_bot.md rename to topics/cloud_slack_bot.md diff --git a/exercises/containers/README.md b/topics/containers/README.md similarity index 100% rename from exercises/containers/README.md rename to topics/containers/README.md diff --git a/exercises/containers/commit_image.md b/topics/containers/commit_image.md similarity index 100% rename from exercises/containers/commit_image.md rename to topics/containers/commit_image.md diff --git a/exercises/containers/containerized_db.md b/topics/containers/containerized_db.md similarity index 100% rename from exercises/containers/containerized_db.md rename to topics/containers/containerized_db.md diff --git a/exercises/containers/containerized_db_persistent_storage.md b/topics/containers/containerized_db_persistent_storage.md similarity index 100% rename from exercises/containers/containerized_db_persistent_storage.md rename to topics/containers/containerized_db_persistent_storage.md diff --git a/exercises/containers/containerized_web_server.md b/topics/containers/containerized_web_server.md similarity index 100% rename from exercises/containers/containerized_web_server.md rename to topics/containers/containerized_web_server.md diff --git a/exercises/containers/image_layers.md b/topics/containers/image_layers.md similarity index 100% rename from exercises/containers/image_layers.md rename to topics/containers/image_layers.md diff --git a/exercises/containers/multi_stage_builds.md b/topics/containers/multi_stage_builds.md similarity index 100% rename from exercises/containers/multi_stage_builds.md rename to topics/containers/multi_stage_builds.md diff --git a/exercises/containers/run_forest_run.md b/topics/containers/run_forest_run.md similarity index 100% rename from exercises/containers/run_forest_run.md rename to topics/containers/run_forest_run.md diff --git a/exercises/containers/running_containers.md b/topics/containers/running_containers.md similarity index 100% rename from exercises/containers/running_containers.md rename to topics/containers/running_containers.md diff --git a/exercises/containers/sharing_images.md b/topics/containers/sharing_images.md similarity index 100% rename from exercises/containers/sharing_images.md rename to topics/containers/sharing_images.md diff --git a/exercises/containers/solutions/commit_image.md b/topics/containers/solutions/commit_image.md similarity index 100% rename from exercises/containers/solutions/commit_image.md rename to topics/containers/solutions/commit_image.md diff --git a/exercises/containers/solutions/containerized_db.md b/topics/containers/solutions/containerized_db.md similarity index 100% rename from exercises/containers/solutions/containerized_db.md rename to topics/containers/solutions/containerized_db.md diff --git a/exercises/containers/solutions/containerized_db_persistent_storage.md b/topics/containers/solutions/containerized_db_persistent_storage.md similarity index 100% rename from exercises/containers/solutions/containerized_db_persistent_storage.md rename to topics/containers/solutions/containerized_db_persistent_storage.md diff --git a/exercises/containers/solutions/containerized_web_server.md b/topics/containers/solutions/containerized_web_server.md similarity index 100% rename from exercises/containers/solutions/containerized_web_server.md rename to topics/containers/solutions/containerized_web_server.md diff --git a/exercises/containers/solutions/image_layers.md b/topics/containers/solutions/image_layers.md similarity index 100% rename from exercises/containers/solutions/image_layers.md rename to topics/containers/solutions/image_layers.md diff --git a/exercises/containers/solutions/multi_stage_builds.md b/topics/containers/solutions/multi_stage_builds.md similarity index 100% rename from exercises/containers/solutions/multi_stage_builds.md rename to topics/containers/solutions/multi_stage_builds.md diff --git a/exercises/containers/solutions/run_forest_run.md b/topics/containers/solutions/run_forest_run.md similarity index 100% rename from exercises/containers/solutions/run_forest_run.md rename to topics/containers/solutions/run_forest_run.md diff --git a/exercises/containers/solutions/running_containers.md b/topics/containers/solutions/running_containers.md similarity index 100% rename from exercises/containers/solutions/running_containers.md rename to topics/containers/solutions/running_containers.md diff --git a/exercises/containers/solutions/sharing_images.md b/topics/containers/solutions/sharing_images.md similarity index 100% rename from exercises/containers/solutions/sharing_images.md rename to topics/containers/solutions/sharing_images.md diff --git a/exercises/containers/solutions/working_with_images.md b/topics/containers/solutions/working_with_images.md similarity index 100% rename from exercises/containers/solutions/working_with_images.md rename to topics/containers/solutions/working_with_images.md diff --git a/exercises/containers/working_with_images.md b/topics/containers/working_with_images.md similarity index 100% rename from exercises/containers/working_with_images.md rename to topics/containers/working_with_images.md diff --git a/exercises/containers/write_containerfile_run_container.md b/topics/containers/write_containerfile_run_container.md similarity index 100% rename from exercises/containers/write_containerfile_run_container.md rename to topics/containers/write_containerfile_run_container.md diff --git a/exercises/databases/solutions/table_for_message_board_system.md b/topics/databases/solutions/table_for_message_board_system.md similarity index 100% rename from exercises/databases/solutions/table_for_message_board_system.md rename to topics/databases/solutions/table_for_message_board_system.md diff --git a/exercises/databases/table_for_message_board_system.md b/topics/databases/table_for_message_board_system.md similarity index 100% rename from exercises/databases/table_for_message_board_system.md rename to topics/databases/table_for_message_board_system.md diff --git a/exercises/devops/README.md b/topics/devops/README.md similarity index 100% rename from exercises/devops/README.md rename to topics/devops/README.md diff --git a/exercises/devops/containerize_app.md b/topics/devops/containerize_app.md similarity index 100% rename from exercises/devops/containerize_app.md rename to topics/devops/containerize_app.md diff --git a/exercises/devops/ha_hello_world.md b/topics/devops/ha_hello_world.md similarity index 100% rename from exercises/devops/ha_hello_world.md rename to topics/devops/ha_hello_world.md diff --git a/exercises/devops/solutions/containerize_app.md b/topics/devops/solutions/containerize_app.md similarity index 100% rename from exercises/devops/solutions/containerize_app.md rename to topics/devops/solutions/containerize_app.md diff --git a/exercises/devops/solutions/ha_hello_world.md b/topics/devops/solutions/ha_hello_world.md similarity index 100% rename from exercises/devops/solutions/ha_hello_world.md rename to topics/devops/solutions/ha_hello_world.md diff --git a/exercises/dns/README.md b/topics/dns/README.md similarity index 100% rename from exercises/dns/README.md rename to topics/dns/README.md diff --git a/exercises/eflk.md b/topics/eflk.md similarity index 100% rename from exercises/eflk.md rename to topics/eflk.md diff --git a/exercises/flask_container_ci/README.md b/topics/flask_container_ci/README.md similarity index 100% rename from exercises/flask_container_ci/README.md rename to topics/flask_container_ci/README.md diff --git a/exercises/flask_container_ci/app/__init__.py b/topics/flask_container_ci/app/__init__.py similarity index 100% rename from exercises/flask_container_ci/app/__init__.py rename to topics/flask_container_ci/app/__init__.py diff --git a/exercises/flask_container_ci/app/config.py b/topics/flask_container_ci/app/config.py similarity index 100% rename from exercises/flask_container_ci/app/config.py rename to topics/flask_container_ci/app/config.py diff --git a/exercises/flask_container_ci/app/main.py b/topics/flask_container_ci/app/main.py similarity index 100% rename from exercises/flask_container_ci/app/main.py rename to topics/flask_container_ci/app/main.py diff --git a/exercises/flask_container_ci/app/tests.py b/topics/flask_container_ci/app/tests.py similarity index 100% rename from exercises/flask_container_ci/app/tests.py rename to topics/flask_container_ci/app/tests.py diff --git a/exercises/flask_container_ci/requirements.txt b/topics/flask_container_ci/requirements.txt similarity index 100% rename from exercises/flask_container_ci/requirements.txt rename to topics/flask_container_ci/requirements.txt diff --git a/exercises/flask_container_ci/tests.py b/topics/flask_container_ci/tests.py similarity index 100% rename from exercises/flask_container_ci/tests.py rename to topics/flask_container_ci/tests.py diff --git a/exercises/flask_container_ci/users.json b/topics/flask_container_ci/users.json similarity index 100% rename from exercises/flask_container_ci/users.json rename to topics/flask_container_ci/users.json diff --git a/exercises/flask_container_ci2/README.md b/topics/flask_container_ci2/README.md similarity index 100% rename from exercises/flask_container_ci2/README.md rename to topics/flask_container_ci2/README.md diff --git a/exercises/flask_container_ci2/app/__init__.py b/topics/flask_container_ci2/app/__init__.py similarity index 100% rename from exercises/flask_container_ci2/app/__init__.py rename to topics/flask_container_ci2/app/__init__.py diff --git a/exercises/flask_container_ci2/app/config.py b/topics/flask_container_ci2/app/config.py similarity index 100% rename from exercises/flask_container_ci2/app/config.py rename to topics/flask_container_ci2/app/config.py diff --git a/exercises/flask_container_ci2/app/main.py b/topics/flask_container_ci2/app/main.py similarity index 100% rename from exercises/flask_container_ci2/app/main.py rename to topics/flask_container_ci2/app/main.py diff --git a/exercises/flask_container_ci2/app/tests.py b/topics/flask_container_ci2/app/tests.py similarity index 100% rename from exercises/flask_container_ci2/app/tests.py rename to topics/flask_container_ci2/app/tests.py diff --git a/exercises/flask_container_ci2/requirements.txt b/topics/flask_container_ci2/requirements.txt similarity index 100% rename from exercises/flask_container_ci2/requirements.txt rename to topics/flask_container_ci2/requirements.txt diff --git a/exercises/flask_container_ci2/tests.py b/topics/flask_container_ci2/tests.py similarity index 100% rename from exercises/flask_container_ci2/tests.py rename to topics/flask_container_ci2/tests.py diff --git a/exercises/git/README.md b/topics/git/README.md similarity index 100% rename from exercises/git/README.md rename to topics/git/README.md diff --git a/exercises/git/branch_01.md b/topics/git/branch_01.md similarity index 100% rename from exercises/git/branch_01.md rename to topics/git/branch_01.md diff --git a/exercises/git/commit_01.md b/topics/git/commit_01.md similarity index 100% rename from exercises/git/commit_01.md rename to topics/git/commit_01.md diff --git a/exercises/git/solutions/branch_01_solution.md b/topics/git/solutions/branch_01_solution.md similarity index 100% rename from exercises/git/solutions/branch_01_solution.md rename to topics/git/solutions/branch_01_solution.md diff --git a/exercises/git/solutions/commit_01_solution.md b/topics/git/solutions/commit_01_solution.md similarity index 100% rename from exercises/git/solutions/commit_01_solution.md rename to topics/git/solutions/commit_01_solution.md diff --git a/exercises/git/solutions/squashing_commits.md b/topics/git/solutions/squashing_commits.md similarity index 100% rename from exercises/git/solutions/squashing_commits.md rename to topics/git/solutions/squashing_commits.md diff --git a/exercises/git/squashing_commits.md b/topics/git/squashing_commits.md similarity index 100% rename from exercises/git/squashing_commits.md rename to topics/git/squashing_commits.md diff --git a/exercises/grafana/README.md b/topics/grafana/README.md similarity index 100% rename from exercises/grafana/README.md rename to topics/grafana/README.md diff --git a/exercises/jenkins_pipelines.md b/topics/jenkins_pipelines.md similarity index 100% rename from exercises/jenkins_pipelines.md rename to topics/jenkins_pipelines.md diff --git a/exercises/jenkins_scripts.md b/topics/jenkins_scripts.md similarity index 100% rename from exercises/jenkins_scripts.md rename to topics/jenkins_scripts.md diff --git a/exercises/kafka/README.md b/topics/kafka/README.md similarity index 100% rename from exercises/kafka/README.md rename to topics/kafka/README.md diff --git a/exercises/kubernetes/README.md b/topics/kubernetes/README.md similarity index 100% rename from exercises/kubernetes/README.md rename to topics/kubernetes/README.md diff --git a/exercises/kubernetes/images/kubernetes_components.png b/topics/kubernetes/images/kubernetes_components.png similarity index 100% rename from exercises/kubernetes/images/kubernetes_components.png rename to topics/kubernetes/images/kubernetes_components.png diff --git a/exercises/kubernetes/images/kubernetes_components_solution.png b/topics/kubernetes/images/kubernetes_components_solution.png similarity index 100% rename from exercises/kubernetes/images/kubernetes_components_solution.png rename to topics/kubernetes/images/kubernetes_components_solution.png diff --git a/exercises/kubernetes/killing_containers.md b/topics/kubernetes/killing_containers.md similarity index 100% rename from exercises/kubernetes/killing_containers.md rename to topics/kubernetes/killing_containers.md diff --git a/exercises/kubernetes/pods_01.md b/topics/kubernetes/pods_01.md similarity index 100% rename from exercises/kubernetes/pods_01.md rename to topics/kubernetes/pods_01.md diff --git a/exercises/kubernetes/replicaset_01.md b/topics/kubernetes/replicaset_01.md similarity index 100% rename from exercises/kubernetes/replicaset_01.md rename to topics/kubernetes/replicaset_01.md diff --git a/exercises/kubernetes/replicaset_02.md b/topics/kubernetes/replicaset_02.md similarity index 100% rename from exercises/kubernetes/replicaset_02.md rename to topics/kubernetes/replicaset_02.md diff --git a/exercises/kubernetes/replicaset_03.md b/topics/kubernetes/replicaset_03.md similarity index 100% rename from exercises/kubernetes/replicaset_03.md rename to topics/kubernetes/replicaset_03.md diff --git a/exercises/kubernetes/services_01.md b/topics/kubernetes/services_01.md similarity index 100% rename from exercises/kubernetes/services_01.md rename to topics/kubernetes/services_01.md diff --git a/exercises/kubernetes/solutions/killing_containers.md b/topics/kubernetes/solutions/killing_containers.md similarity index 100% rename from exercises/kubernetes/solutions/killing_containers.md rename to topics/kubernetes/solutions/killing_containers.md diff --git a/exercises/kubernetes/solutions/pods_01_solution.md b/topics/kubernetes/solutions/pods_01_solution.md similarity index 100% rename from exercises/kubernetes/solutions/pods_01_solution.md rename to topics/kubernetes/solutions/pods_01_solution.md diff --git a/exercises/kubernetes/solutions/replicaset_01_solution.md b/topics/kubernetes/solutions/replicaset_01_solution.md similarity index 100% rename from exercises/kubernetes/solutions/replicaset_01_solution.md rename to topics/kubernetes/solutions/replicaset_01_solution.md diff --git a/exercises/kubernetes/solutions/replicaset_02_solution.md b/topics/kubernetes/solutions/replicaset_02_solution.md similarity index 100% rename from exercises/kubernetes/solutions/replicaset_02_solution.md rename to topics/kubernetes/solutions/replicaset_02_solution.md diff --git a/exercises/kubernetes/solutions/replicaset_03_solution.md b/topics/kubernetes/solutions/replicaset_03_solution.md similarity index 100% rename from exercises/kubernetes/solutions/replicaset_03_solution.md rename to topics/kubernetes/solutions/replicaset_03_solution.md diff --git a/exercises/kubernetes/solutions/services_01_solution.md b/topics/kubernetes/solutions/services_01_solution.md similarity index 100% rename from exercises/kubernetes/solutions/services_01_solution.md rename to topics/kubernetes/solutions/services_01_solution.md diff --git a/exercises/linux/README.md b/topics/linux/README.md similarity index 100% rename from exercises/linux/README.md rename to topics/linux/README.md diff --git a/exercises/misc/elk_kibana_aws.md b/topics/misc/elk_kibana_aws.md similarity index 100% rename from exercises/misc/elk_kibana_aws.md rename to topics/misc/elk_kibana_aws.md diff --git a/exercises/openshift/README.md b/topics/openshift/README.md similarity index 100% rename from exercises/openshift/README.md rename to topics/openshift/README.md diff --git a/exercises/openshift/projects_101.md b/topics/openshift/projects_101.md similarity index 100% rename from exercises/openshift/projects_101.md rename to topics/openshift/projects_101.md diff --git a/exercises/openshift/solutions/my_first_app.md b/topics/openshift/solutions/my_first_app.md similarity index 100% rename from exercises/openshift/solutions/my_first_app.md rename to topics/openshift/solutions/my_first_app.md diff --git a/exercises/openshift/solutions/projects_101.md b/topics/openshift/solutions/projects_101.md similarity index 100% rename from exercises/openshift/solutions/projects_101.md rename to topics/openshift/solutions/projects_101.md diff --git a/exercises/os/fork_101.md b/topics/os/fork_101.md similarity index 100% rename from exercises/os/fork_101.md rename to topics/os/fork_101.md diff --git a/exercises/os/fork_102.md b/topics/os/fork_102.md similarity index 100% rename from exercises/os/fork_102.md rename to topics/os/fork_102.md diff --git a/exercises/os/solutions/fork_101_solution.md b/topics/os/solutions/fork_101_solution.md similarity index 100% rename from exercises/os/solutions/fork_101_solution.md rename to topics/os/solutions/fork_101_solution.md diff --git a/exercises/os/solutions/fork_102_solution.md b/topics/os/solutions/fork_102_solution.md similarity index 100% rename from exercises/os/solutions/fork_102_solution.md rename to topics/os/solutions/fork_102_solution.md diff --git a/exercises/perl/README.md b/topics/perl/README.md similarity index 100% rename from exercises/perl/README.md rename to topics/perl/README.md diff --git a/exercises/pipeline_deploy_image_to_k8.md b/topics/pipeline_deploy_image_to_k8.md similarity index 100% rename from exercises/pipeline_deploy_image_to_k8.md rename to topics/pipeline_deploy_image_to_k8.md diff --git a/exercises/programming/grep_berfore_and_after.md b/topics/programming/grep_berfore_and_after.md similarity index 100% rename from exercises/programming/grep_berfore_and_after.md rename to topics/programming/grep_berfore_and_after.md diff --git a/exercises/programming/web_scraper.md b/topics/programming/web_scraper.md similarity index 100% rename from exercises/programming/web_scraper.md rename to topics/programming/web_scraper.md diff --git a/exercises/python/advanced_data_types.md b/topics/python/advanced_data_types.md similarity index 100% rename from exercises/python/advanced_data_types.md rename to topics/python/advanced_data_types.md diff --git a/exercises/python/compress_string.md b/topics/python/compress_string.md similarity index 100% rename from exercises/python/compress_string.md rename to topics/python/compress_string.md diff --git a/exercises/python/data_types.md b/topics/python/data_types.md similarity index 100% rename from exercises/python/data_types.md rename to topics/python/data_types.md diff --git a/exercises/python/reverse_string.md b/topics/python/reverse_string.md similarity index 100% rename from exercises/python/reverse_string.md rename to topics/python/reverse_string.md diff --git a/exercises/python/solutions/advanced_data_types_solution.md b/topics/python/solutions/advanced_data_types_solution.md similarity index 100% rename from exercises/python/solutions/advanced_data_types_solution.md rename to topics/python/solutions/advanced_data_types_solution.md diff --git a/exercises/python/solutions/data_types_solution.md b/topics/python/solutions/data_types_solution.md similarity index 100% rename from exercises/python/solutions/data_types_solution.md rename to topics/python/solutions/data_types_solution.md diff --git a/exercises/python/solutions/reverse_string.md b/topics/python/solutions/reverse_string.md similarity index 100% rename from exercises/python/solutions/reverse_string.md rename to topics/python/solutions/reverse_string.md diff --git a/exercises/security/README.md b/topics/security/README.md similarity index 98% rename from exercises/security/README.md rename to topics/security/README.md index 2fc680bfc..fd3833057 100644 --- a/exercises/security/README.md +++ b/topics/security/README.md @@ -409,6 +409,12 @@ CPDoS or Cache Poisoned Denial of Service. It poisons the CDN cache. By manipula What is the difference if any between SSL and TLS?
+
+What's SSL termination (or SSL offloading)?
+ +SSL termination is the process of decrypting encrypted traffic. The advantage in SSL termination is that the server doesn't have to perform it, we can use SSL termination to reduce the load on the server, speed up some processes, and allow the server to focus on its core functionality (e.g. deliver content) +
+
What is SNI (Server Name Indication)?
diff --git a/exercises/shell/README.md b/topics/shell/README.md similarity index 100% rename from exercises/shell/README.md rename to topics/shell/README.md diff --git a/exercises/shell/argument_check.md b/topics/shell/argument_check.md similarity index 100% rename from exercises/shell/argument_check.md rename to topics/shell/argument_check.md diff --git a/exercises/shell/basic_date.md b/topics/shell/basic_date.md similarity index 100% rename from exercises/shell/basic_date.md rename to topics/shell/basic_date.md diff --git a/exercises/shell/count_chars.md b/topics/shell/count_chars.md similarity index 100% rename from exercises/shell/count_chars.md rename to topics/shell/count_chars.md diff --git a/exercises/shell/directories_comparison.md b/topics/shell/directories_comparison.md similarity index 100% rename from exercises/shell/directories_comparison.md rename to topics/shell/directories_comparison.md diff --git a/exercises/shell/empty_files.md b/topics/shell/empty_files.md similarity index 100% rename from exercises/shell/empty_files.md rename to topics/shell/empty_files.md diff --git a/exercises/shell/factors.md b/topics/shell/factors.md similarity index 100% rename from exercises/shell/factors.md rename to topics/shell/factors.md diff --git a/exercises/shell/files_size.md b/topics/shell/files_size.md similarity index 100% rename from exercises/shell/files_size.md rename to topics/shell/files_size.md diff --git a/exercises/shell/great_day.md b/topics/shell/great_day.md similarity index 100% rename from exercises/shell/great_day.md rename to topics/shell/great_day.md diff --git a/exercises/shell/hello_world.md b/topics/shell/hello_world.md similarity index 100% rename from exercises/shell/hello_world.md rename to topics/shell/hello_world.md diff --git a/exercises/shell/host_status.md b/topics/shell/host_status.md similarity index 100% rename from exercises/shell/host_status.md rename to topics/shell/host_status.md diff --git a/exercises/shell/num_of_args.md b/topics/shell/num_of_args.md similarity index 100% rename from exercises/shell/num_of_args.md rename to topics/shell/num_of_args.md diff --git a/exercises/shell/print_arguments.md b/topics/shell/print_arguments.md similarity index 100% rename from exercises/shell/print_arguments.md rename to topics/shell/print_arguments.md diff --git a/exercises/shell/solutions/basic_date.md b/topics/shell/solutions/basic_date.md similarity index 100% rename from exercises/shell/solutions/basic_date.md rename to topics/shell/solutions/basic_date.md diff --git a/exercises/shell/solutions/count_chars.md b/topics/shell/solutions/count_chars.md similarity index 100% rename from exercises/shell/solutions/count_chars.md rename to topics/shell/solutions/count_chars.md diff --git a/exercises/shell/solutions/directories_comparison.md b/topics/shell/solutions/directories_comparison.md similarity index 100% rename from exercises/shell/solutions/directories_comparison.md rename to topics/shell/solutions/directories_comparison.md diff --git a/exercises/shell/solutions/empty_files.md b/topics/shell/solutions/empty_files.md similarity index 100% rename from exercises/shell/solutions/empty_files.md rename to topics/shell/solutions/empty_files.md diff --git a/exercises/shell/solutions/factors.md b/topics/shell/solutions/factors.md similarity index 100% rename from exercises/shell/solutions/factors.md rename to topics/shell/solutions/factors.md diff --git a/exercises/shell/solutions/files_size.md b/topics/shell/solutions/files_size.md similarity index 100% rename from exercises/shell/solutions/files_size.md rename to topics/shell/solutions/files_size.md diff --git a/exercises/shell/solutions/great_day.md b/topics/shell/solutions/great_day.md similarity index 100% rename from exercises/shell/solutions/great_day.md rename to topics/shell/solutions/great_day.md diff --git a/exercises/shell/solutions/hello_world.md b/topics/shell/solutions/hello_world.md similarity index 100% rename from exercises/shell/solutions/hello_world.md rename to topics/shell/solutions/hello_world.md diff --git a/exercises/shell/solutions/host_status.md b/topics/shell/solutions/host_status.md similarity index 100% rename from exercises/shell/solutions/host_status.md rename to topics/shell/solutions/host_status.md diff --git a/exercises/shell/solutions/num_of_args.md b/topics/shell/solutions/num_of_args.md similarity index 100% rename from exercises/shell/solutions/num_of_args.md rename to topics/shell/solutions/num_of_args.md diff --git a/exercises/shell/solutions/sum.md b/topics/shell/solutions/sum.md similarity index 100% rename from exercises/shell/solutions/sum.md rename to topics/shell/solutions/sum.md diff --git a/exercises/shell/sum.md b/topics/shell/sum.md similarity index 100% rename from exercises/shell/sum.md rename to topics/shell/sum.md diff --git a/exercises/soft_skills/README.md b/topics/soft_skills/README.md similarity index 100% rename from exercises/soft_skills/README.md rename to topics/soft_skills/README.md diff --git a/exercises/software_development/README.md b/topics/software_development/README.md similarity index 100% rename from exercises/software_development/README.md rename to topics/software_development/README.md diff --git a/exercises/sql/improve_query.md b/topics/sql/improve_query.md similarity index 100% rename from exercises/sql/improve_query.md rename to topics/sql/improve_query.md diff --git a/exercises/sql/solutions/improve_query.md b/topics/sql/solutions/improve_query.md similarity index 100% rename from exercises/sql/solutions/improve_query.md rename to topics/sql/solutions/improve_query.md diff --git a/exercises/terraform/README.md b/topics/terraform/README.md similarity index 92% rename from exercises/terraform/README.md rename to topics/terraform/README.md index 5a10748de..c78df1802 100644 --- a/exercises/terraform/README.md +++ b/topics/terraform/README.md @@ -21,7 +21,7 @@ |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Local Provider | Basics | [Exercise](terraform_local_provider/exercise.md) | [Solution](terraform_local_provider/solution.md) | | +| Local Provider | Basics | [Exercise](exercises/terraform_local_provider/exercise.md) | [Solution](exercises/terraform_local_provider/solution.md) | | ### AWS @@ -29,8 +29,8 @@ |Name|Topic|Objective & Instructions|Solution|Comments| |--------|--------|------|----|----| -| Launch EC2 web instance | EC2 | [Exercise](launch_ec2_web_instance/exercise.md) | [Solution](launch_ec2_web_instance/solution.md) | | -| Rename S3 bucket | S3 | [Exercise](s3_bucket_rename/exercise.md) | [Solution](s3_bucket_rename/solution.md) | | +| Launch EC2 instance | EC2 | [Exercise](exercises/launch_ec2_instance/exercise.md) | [Solution](exercises/launch_ec2_instance/solution.md) | | +| Rename S3 bucket | S3 | [Exercise](exercises/s3_bucket_rename/exercise.md) | [Solution](exercises/s3_bucket_rename/solution.md) | | ## Questions @@ -99,9 +99,39 @@ In the [Terraform Registry](https://registry.terraform.io/browse/providers)
-What is the name of the provider in this case: `resource "libvirt_domain" "instance" {...}`
+What are the names of the providers in this case? -libvirt +``` +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + } + azurer = { + source = "hashicorp/azurerm" + version = "~> 3.0.2" + } + } + } +``` +
+ +azurerm and aws +
+ +
+True or False? Applying the following Terraform configuration will fail since no source or version specific for 'aws' provider + +``` +terraform { + required_providers { + aws = {} + } + } +``` +
+ +False. It will look for "aws" provider in the public Terraform registry and will take the latest version.
@@ -126,6 +156,12 @@ provider "aws" { ```
+
+Where Terraform installs providers from by default?
+ +By default Terraform providers are installed from Terraform Registry +
+
What is the Terraform Registry?
@@ -386,6 +422,18 @@ z = "luigi" It keeps track of the IDs of created resources so that Terraform knows what it's managing.
+
+How to inspect current state?
+ +terraform show +
+ +
+How to list resources created with Terraform?
+ +terraform state list +
+
How do you rename an existing resource?
@@ -482,4 +530,6 @@ It's does NOT create the definitions/configuration for creating such infrastruct ### Real Life Scenarios -TODO \ No newline at end of file +
+
+
\ No newline at end of file diff --git a/topics/terraform/exercises/launch_ec2_instance/exercise.md b/topics/terraform/exercises/launch_ec2_instance/exercise.md new file mode 100644 index 000000000..8aebf53ca --- /dev/null +++ b/topics/terraform/exercises/launch_ec2_instance/exercise.md @@ -0,0 +1,12 @@ +# Launch EC2 instance + +## Reuqirements + +* AWS account + +## Objectives + +1. Write Terraform configuration for launching an EC2 instance +2. Run the commands to apply the configuration and create the EC2 instance +3. What happens if you run again `terraform apply`? +4. Destroy the instance you've created with Terraform \ No newline at end of file diff --git a/topics/terraform/exercises/launch_ec2_instance/solution.md b/topics/terraform/exercises/launch_ec2_instance/solution.md new file mode 100644 index 000000000..734baf497 --- /dev/null +++ b/topics/terraform/exercises/launch_ec2_instance/solution.md @@ -0,0 +1,65 @@ +# Launch EC2 instance + +## Reuqirements + +* AWS account + +## Objectives + +1. Write Terraform configuration for launching an EC2 instance +2. Run the commands to apply the configuration and create the EC2 instance +3. What happens if you run again `terraform apply`? +4. Destroy the instance you've created with Terraform + +## Solution + +``` +mkdir exercise + +cat << EOT >> main.tf +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.16" + } + } + + required_version = ">= 1.2.0" +} + +provider "aws" { + region = "us-west-2" +} + +resource "aws_instance" "app_server" { + ami = "ami-830c94e3" + instance_type = "t2.micro" + + tags = { + Name = "ExampleAppServerInstance" + } +} +EOT + +terraform init +terraform validate +terraform plan + +# You should see this line at the end: Plan: 1 to add, 0 to change, 0 to destroy + +terraform apply -auto-approve + +# You should see the following output: +# aws_instance.app_server: Creation complete after 49s [id=i-004651a9d4427d236 + +# Running 'terraform apply' again won't change anything as +# Terraform will compare actual infrastructure to your +# configuration and won't find any difference. You should see the following line: +# Apply complete! Resources: 0 added, 0 changed, 0 destroyed. + +# Remove instance +terraform destroy -auto-approve + +# Destroy complete! Resources: 1 destroyed. +``` \ No newline at end of file diff --git a/exercises/terraform/launch_ec2_web_instance/exercise.md b/topics/terraform/exercises/launch_ec2_web_instance/exercise.md similarity index 100% rename from exercises/terraform/launch_ec2_web_instance/exercise.md rename to topics/terraform/exercises/launch_ec2_web_instance/exercise.md diff --git a/exercises/terraform/s3_bucket_rename/exercise.md b/topics/terraform/exercises/s3_bucket_rename/exercise.md similarity index 100% rename from exercises/terraform/s3_bucket_rename/exercise.md rename to topics/terraform/exercises/s3_bucket_rename/exercise.md diff --git a/exercises/terraform/s3_bucket_rename/solution.md b/topics/terraform/exercises/s3_bucket_rename/solution.md similarity index 100% rename from exercises/terraform/s3_bucket_rename/solution.md rename to topics/terraform/exercises/s3_bucket_rename/solution.md diff --git a/exercises/terraform/terraform_local_provider/exercise.md b/topics/terraform/exercises/terraform_local_provider/exercise.md similarity index 100% rename from exercises/terraform/terraform_local_provider/exercise.md rename to topics/terraform/exercises/terraform_local_provider/exercise.md diff --git a/exercises/terraform/terraform_local_provider/solution.md b/topics/terraform/exercises/terraform_local_provider/solution.md similarity index 100% rename from exercises/terraform/terraform_local_provider/solution.md rename to topics/terraform/exercises/terraform_local_provider/solution.md diff --git a/exercises/zuul/README.md b/topics/zuul/README.md similarity index 100% rename from exercises/zuul/README.md rename to topics/zuul/README.md