Errata for Microservice Deployment

Here are all known errors or updates since the course was recorded.

  • If you have more than more VPC on your AWS account, or if your account is old and supports the legacy "EC2 Classic", then you will have to add into some of your Ansible scripts a field for "vpc_id" and/or "vpc_subnet_id". You can find these values in the VPC service on AWS.
  • When launching your Ansilbe Control Instance (Chapter 3), be sure to select the "Amazon Linux AMI" and NOT the "Amazon Linux 2 AMI", or you will have problems using pip.
  • From Ansilbe 1.9, the "--sudo" command has been replaced with "--become".
  • When creating your Ansible Server, you will have to add an "outbound" rule on the security group - the rule should be port 0-65535, All TCP from Anywhere. These are "egress" rules and when we recorded the video, were the default. Now they have to be manually added.
  • The variable ANSIBLE_HOSTS has been deprecated and will be removed in version 2.8. If you have any problems, simply use the variable ANSIBLE_INVENTORY instead.
  • The ansible stack has been upgraded on EC2 since we recorded the video. If in chapter 10 you receive an error "boto3 required for this module", then run "sudo pip install boto3". Boto3 is the AWS SDK for Python and for some reason it now needs to be manually installed.
  • In the video where we upgrade the url of the Eureka server (in global-config/application.properties), we forgot to remove the old localhost version. Luckily this works because it goes with the last version. We should have removed the old one though!
  • When running the build with Jenkins, we add a sample unit test which tests date formatting - we forgot that this won't work in different parts of the world - don't worry about this, you just need any JUnit test which passes - you can do anything here!
  • We've had some reports that the step of selecting AWS credentials when generating the pipeline syntax isn't working (dropdown fails to appear) - this happened on the recording but was fixed with a refresh - however, we have had some reports of this problem persisting. We can't replicate this, so please send us a message through "contact us" to report this. Actually Jenkins is only generating some syntax and you can simply copy this in to your Jenkinsfile to solve the problem.
  • If you have created a Load Balancer and then launched some instances into them, you may find you get a 404 when visiting the URL of the balancer (even though the instances are healthy). This might be because the DNS record of the balancer is still propagating. You can just wait a short while (around 30mins), or you can try (on windows command prompt) ipconfig /flushdns.
  • If you receive an error "Working with RDS requires boto3", then run "sudo pip install boto3".
  • Current versions of Jenkins rely on a Java 8 runtime. Please modify your Ansible script to move the "Start Jenkins" task to the bottom of the script (ie, after Java 8 has been set as the default JRE).