What Is The Difference between AWS CodeBuild and AWS CodeCommit?

Question
AWS has PaaS services called CodeBuild and CodeCommit.  What are the differences between these?

Answer
"AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy."  (Taken from https://aws.amazon.com/codebuild/.)

"AWS CodeCommit is a fully-managed source control service that hosts secure Git-based repositiories."  (Taken from https://aws.amazon.com/codecommit/.)

AWS CodeCommit is a PaaS repository of code.  CodeBuild is a service that prepares code to be deployed; CodeBuild is a CI process that may involve a code repository such as AWS CodeCommit.

What Is The Difference between AWS CodeBuild and AWS CodeDeploy?

Question
AWS has PaaS services called CodeBuild and CodeDeploy.  What are the differences between these?

Answer
"AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy."  (Taken from https://aws.amazon.com/codebuild/.)

"AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers."  (Taken from https://aws.amazon.com/codedeploy/.)

CI is the automated convergence of code from two or more developers.  CodeBuild facilitates the CI process.  AWS CodeDeploy specializes in a component of the CI process: deploying to AWS components and [EC-2] servers.

What Is The Difference between AWS CodeDeploy and AWS CodePipeline?

Question
AWS has PaaS services called CodeDeploy and CodePipeline.  What are the differences between these?

Answer
"AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers."  (Taken from https://aws.amazon.com/codedeploy/.)

"AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates."  (Taken from https://aws.amazon.com/codepipeline/.)

AWS CodeDeploy is primarily for deploying code that is ready to be deployed to various AWS components and [EC-2] servers.  AWS CodePipeline is a tool for automating the deployment (and integration) of code from two or more developers to a variety of different servers (including on-premise hardware).

What Is The Difference between AWS CodeBuild and AWS CodeDeploy?

Question
AWS has PaaS services called CodeBuild and CodeDeploy.  What are the differences between these?

Answer
"AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy."  (Taken from https://aws.amazon.com/codebuild/.)

"AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers." (Taken from https://aws.amazon.com/codedeploy/.)

AWS CodeBuild is primarily for preparing software for deployment.  AWS CodeDeploy is primarily for doing the deployment of code that is ready to be deployed.

What Is The Difference between AWS CodeBuild and AWS CodePipeline?

Question
AWS has PaaS services called CodeBuild and CodePipeline.  What are the differences between these?

Answer
"AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy." (This was taken from https://aws.amazon.com/codebuild/.)

"AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates."  (This was taken from https://aws.amazon.com/codepipeline/.)

CI is the automated convergence of code from two or more developers.  Continuous delivery is the use of a CI pipeline wherein the final promotion of the code to production is done through manual means.  Continuous delivery is the application of CI.  Therefore AWS CodeBuild does not do all that the AWS CodePipeline does.

What Is The Difference between AWS CodeCommit and AWS CodePipeline?

Question
AWS has PaaS services called CodeCommit and CodePipeline.  What are the differences between these?

Answer
"AWS CodeCommit is a fully-managed source control service that hosts secure Git-based repositiories."  (Taken from https://aws.amazon.com/codecommit/.)

"AWS CodePipeline is a fully managed [sic] continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates."  (Taken from https://aws.amazon.com/codepipeline/.)

AWS CodeCommit is a PaaS repository of code.  AWS CodePipeline is a specific type of CI pipeline that may use a code repository such as CodeCommit.

How Do You Get an Ansible Command to Issue a Long-Running Bash Command and Keep Processing?

Problem scenario
You have a playbook that runs a shell command.  But this command never completes.  If you cancel the playbook, you find the processes started from the playbook cancel from the cancellation of the playbook too.  You want the process to keep running while Ansible moves to the next command.  You want processes to run in a detached way that is independent of the playbook execution itself.  You want the playbook to have a finite duration while allowing the Linux command to continue processing. What do you do to get the Ansible playbook to complete while leaving long-running (including processes that run indefinitely) Linux processes/commands running that were started by the playbook itself?

Solution
Root cause

The Ansible playbook generally waits for the Linux command to return a success or failure.  It does not keep processing until the Linux command is completed.

Possible solution #1
Prepend this string to the Bash command itself: "nohup "
Append this string, without the quotes, to the end of the Bash command: "> /dev/null 2>&1 &"

Possible solution #2
If the Linux command starts a service that runs indefinitely, create a foobar.service file where "foobar" is the name of the service.  Place this file in /etc/systemd/system/.   Now you can re-write your Ansible playbook to use the built in "service" module rather than the raw Linux commands.  To learn about how to create a .service file, look at solution #2 of this article.

Possible solution #3
Use the "async" and "poll" attributes.  Alternatively you can use the pause module after a long-running command such as the one above.  This link has more information.  The word "pause" is reserved and can take attributes "minutes" or "seconds".  Pausing for 10 seconds after the shell (or raw Linux) command can allow for the Ansible playbook to continue running while allowing the command to run on its own.

How Do You Install The aws-iam-authenticator?

Problem scenario
You want to manage Kubernetes (e.g., Amazon EKS) via a server in AWS.  You want to install the aws-iam-authenticator on a Linux server.  How do you do this?

Solution
1.  To install aws-iam-authenticator go here to obtain the link that is relevant for your server.  You will search the above link for "aws-iam-authenticator binary from Amazon S3"

2.  If you are using Linux, run these commands to download, install and configure aws-iam-authenticator:

curl http://link/above > /tmp/aws-iam-authenticator
chmod +x /tmp/aws-iam-authenticator
mkdir $HOME/bin
cp /tmp/aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
aws-iam-authenticator help  
# This tests the installation

How Do You Get the sonar.sh Console to Actually Work When the Screen Says That “SonarQube is already running”?

Problem scenario
You stop SonarQube services from running.  You want to log into the web UI console to set things up.  You run this command:

sudo bash /opt/sonarqube/bin/linux-x86-64/sonar.sh console

But all you see is

"
Running SonarQube...
SonarQube is already running.
"

You never get a network service to listen on port 9000.  How do you use "sonar.sh console" to initially configure Sonar?

Solution
Run this command:
sudo bash /opt/sonarqube/bin/linux-x86-64/sonar.sh stop

Make sure you starting the script as a non-root user.  Then run this:

bash /opt/sonarqube/bin/linux-x86-64/sonar.sh console

Make sure that the user who is running the command has the ability to execute files in the /opt/sonarqube/ directory.  You may want to draft a command such as this:

sudo chown -R jdoe:goodgroup /opt/sonarqube

# Replace jdoe with the username that is trying to run the command.  Replace goodgroup with the group associated with the user.  If you do not know what group that is, log in as that user or use "su jdoe" (where jdoe is the username).  Then run the command "groups".

Then run the command you have drafted.

How Do You Install Varnish on Debian/Ubuntu Linux?

Problem scenario
You want to install Varnish on a Debian/Ubuntu Linux server.  How do you do this?

Solution
Run these commands:

sudo apt-get -y update

sudo apt-get -y install gcc python-docutils pkg-config libreadline-dev libncurses5-dev libpcre3-dev #*

curl http://varnish-cache.org/_downloads/varnish-6.0.0.tgz > /tmp/varnish-6.0.0.tgz

sudo cp /tmp/varnish-6.0.0.tgz /opt/
cd /opt
sudo tar xvzf varnish-6.0.0.tgz
cd varnish-6.0.0
sudo ./configure
sudo make
sudo make install
varnishd -V

* This website says:

'On Debian, you might also have to do:

export PCRE_LIBS="-L/usr/lib -lpcre"
export PCRE_CFLAGS=-I/usr/include/pcre # '

If you want to purchase a book on Varnish, click here.