

# Managing CodeDeploy agent operations
<a name="codedeploy-agent-operations"></a>

The instructions in this section show you how to install, uninstall, reinstall, or update the CodeDeploy agent and how to verify the CodeDeploy agent is running.

**Topics**
+ [

# Verify the CodeDeploy agent is running
](codedeploy-agent-operations-verify.md)
+ [

# Determine the version of the CodeDeploy agent
](codedeploy-agent-operations-version.md)
+ [

# Install the CodeDeploy agent
](codedeploy-agent-operations-install.md)
+ [

# Update the CodeDeploy agent
](codedeploy-agent-operations-update.md)
+ [

# Uninstall the CodeDeploy agent
](codedeploy-agent-operations-uninstall.md)
+ [

# Send CodeDeploy agent logs to CloudWatch
](codedeploy-agent-operations-cloudwatch-agent.md)

# Verify the CodeDeploy agent is running
<a name="codedeploy-agent-operations-verify"></a>

This section describes commands to run if you suspect the CodeDeploy agent has stopped running on an instance.

**Topics**
+ [

## Verify the CodeDeploy agent for Amazon Linux or RHEL is running
](#codedeploy-agent-operations-verify-linux)
+ [

## Verify the CodeDeploy agent for Ubuntu Server is running
](#codedeploy-agent-operations-verify-ubuntu)
+ [

## Verify the CodeDeploy agent for Windows Server is running
](#codedeploy-agent-operations-verify-windows)

## Verify the CodeDeploy agent for Amazon Linux or RHEL is running
<a name="codedeploy-agent-operations-verify-linux"></a>

To see if the CodeDeploy agent is installed and running, sign in to the instance, and run the following command:

```
systemctl status codedeploy-agent
```

If the command returns an error, the CodeDeploy agent is not installed. Install it as described in [Install the CodeDeploy agent for Amazon Linux or RHEL](codedeploy-agent-operations-install-linux.md).

If the CodeDeploy agent is installed and running, you should see a message like `The AWS CodeDeploy agent is running`.

If you see a message like `error: No AWS CodeDeploy agent running`, start the service and run the following two commands, one at a time:

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## Verify the CodeDeploy agent for Ubuntu Server is running
<a name="codedeploy-agent-operations-verify-ubuntu"></a>

To see if the CodeDeploy agent is installed and running, sign in to the instance, and run the following command:

```
systemctl status codedeploy-agent
```

If the command returns an error, the CodeDeploy agent is not installed. Install it as described in [Install the CodeDeploy agent for Ubuntu Server](codedeploy-agent-operations-install-ubuntu.md).

If the CodeDeploy agent is installed and running, you should see a message like `The AWS CodeDeploy agent is running`.

If you see a message like `error: No AWS CodeDeploy agent running`, start the service and run the following two commands, one at a time:

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## Verify the CodeDeploy agent for Windows Server is running
<a name="codedeploy-agent-operations-verify-windows"></a>

To see if the CodeDeploy agent is installed and running, sign in to the instance, and run the following command:

```
powershell.exe -Command Get-Service -Name codedeployagent
```

You should see output similar to the following:

```
Status   Name               DisplayName
------   ----               -----------
Running codedeployagent    CodeDeploy Host Agent Service
```

If the command returns an error, the CodeDeploy agent is not installed. Install it as described in [Install the CodeDeploy agent for Windows Server](codedeploy-agent-operations-install-windows.md).

If `Status` shows anything other than `Running`, start the service with the following command:

```
powershell.exe -Command Start-Service -Name codedeployagent
```

You can restart the service with the following command:

```
powershell.exe -Command Restart-Service -Name codedeployagent
```

You can stop the service with the following command:

```
powershell.exe -Command Stop-Service -Name codedeployagent
```

# Determine the version of the CodeDeploy agent
<a name="codedeploy-agent-operations-version"></a>

You can determine the version of the CodeDeploy agent running on your instance in two ways.

First, starting with version 1.0.1.854 of the CodeDeploy agent, you can view the version number in a `.version` file on the instance. The following table shows the location and sample version string for each of the supported operating systems.


| Operating system | File location | Sample agent\$1version string | 
| --- | --- | --- | 
| Amazon Linux and Red Hat Enterprise Linux (RHEL) | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1rpm | 
| Ubuntu Server | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1deb | 
| Windows Server | C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1.version | OFFICIAL\$11.0.1.854\$1msi | 

Second, you can run a command on an instance to determine the version of the CodeDeploy agent.

**Topics**
+ [

## Determine the version on Amazon Linux or RHEL
](#codedeploy-agent-operations-version-linux)
+ [

## Determine the version on Ubuntu Server
](#codedeploy-agent-operations-version-ubuntu)
+ [

## Determine the version on Windows Server
](#codedeploy-agent-operations-version-windows)

## Determine the version on Amazon Linux or RHEL
<a name="codedeploy-agent-operations-version-linux"></a>

Sign in to the instance and run the following command:

```
sudo yum info codedeploy-agent
```

## Determine the version on Ubuntu Server
<a name="codedeploy-agent-operations-version-ubuntu"></a>

Sign in to the instance and run the following command:

```
sudo dpkg -s codedeploy-agent
```

## Determine the version on Windows Server
<a name="codedeploy-agent-operations-version-windows"></a>

Sign in to the instance and run the following command:

```
sc qdescription codedeployagent
```

# Install the CodeDeploy agent
<a name="codedeploy-agent-operations-install"></a>

To use CodeDeploy on EC2 instances or on-premises servers, the CodeDeploy agent must be installed first. We recommend installing and updating the CodeDeploy agent with AWS Systems Manager. For more information about Systems Manager, see [What is AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html). You can set up installation and scheduled updates of the CodeDeploy agent with Systems Manager in the console when you create your deployment groups.

You can also install the CodeDeploy agent directly from an S3 bucket with the command line.

For the recommended version to install, see [Version history of the CodeDeploy agent](codedeploy-agent.md#codedeploy-agent-version-history).

**Topics**
+ [

# Install the CodeDeploy agent using AWS Systems Manager
](codedeploy-agent-operations-install-ssm.md)
+ [

# Install the CodeDeploy agent using the command line
](codedeploy-agent-operations-install-cli.md)

# Install the CodeDeploy agent using AWS Systems Manager
<a name="codedeploy-agent-operations-install-ssm"></a>

You can use the AWS Management Console or the AWS CLI to install the CodeDeploy agent to your Amazon EC2 or on-premises instances by using AWS Systems Manager. You can choose to install a specific version or choose to always install the latest version of the agent. For more information about AWS Systems Manager, see [What is AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html). 

 Using AWS Systems Manager is the recommended method for installing and updating the CodeDeploy agent. You can also install the CodeDeploy agent from an Amazon S3 bucket. For information about using an Amazon S3 download link, see [Install the CodeDeploy agent using the command line](codedeploy-agent-operations-install-cli.md). 

**Topics**
+ [

## Prerequisites
](#install-codedeploy-agent-prereqs)
+ [

## Install the CodeDeploy agent
](#download-codedeploy-agent-on-EC2-Instance)

## Prerequisites
<a name="install-codedeploy-agent-prereqs"></a>

Follow the steps in [Getting started with CodeDeploy](getting-started-codedeploy.md) to set up IAM permissions and the AWS CLI.

If installing the CodeDeploy agent on an on-premises server with Systems Manager, you must register your on-premises server with Amazon EC2 Systems Manager. For more information, see [ Setting up Systems Manager in hybrid environments](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) in the *AWS Systems Manager User Guide*.

## Install the CodeDeploy agent
<a name="download-codedeploy-agent-on-EC2-Instance"></a>

Before you can use Systems Manager to install the CodeDeploy agent, you must make sure that the instance is configured correctly for Systems Manager.

### Installing or updating the SSM agent
<a name="update-SSM-Agent-EC2instance"></a>

On an Amazon EC2 instance, the CodeDeploy agent requires that the instance is running version 2.3.274.0 or later. Before you install the CodeDeploy agent, update or install SSM agent on the instance if you haven't already done so. 

The SSM agent comes preinstalled on some Amazon EC2 AMIs provided by AWS. For more information, see [Amazon Machine Images (AMIs) with SSM agent preinstalled](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html).

**Note**  
Make sure that the instance's operating system is also supported by the CodeDeploy agent. For more information, see [Operating systems supported by the CodeDeploy agent](codedeploy-agent.md#codedeploy-agent-supported-operating-systems).

For information about installing or updating SSM agent on an instance running Linux, see [Installing and configuring the SSM agent on Linux instances](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html) in the *AWS Systems Manager User Guide*.

For information about installing or updating SSM agent on an instance running Windows Server, see [ Installing and configuring SSM agent on Windows instances](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html) in the *AWS Systems Manager User Guide*.

### (Optional) Verify Systems Manager prerequisites
<a name="install-codedeploy-agent-minimum-requirements"></a>

Before you use Systems Manager Run Command to install the CodeDeploy agent, verify that your instances meet the minimum Systems Manager requirements. For more information, see [Setting up AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html) in the *AWS Systems Manager User Guide*.

### Install the CodeDeploy agent
<a name="install-codedeploy-agent-EC2"></a>

With SSM, you can install the CodeDeploy once or set up a schedule to install new versions.

 To install the CodeDeploy agent, choose the `AWSCodeDeployAgent` package while you follow the steps in [Install or update packages with AWS Systems Manager distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html). 

# Install the CodeDeploy agent using the command line
<a name="codedeploy-agent-operations-install-cli"></a>

**Note**  
We recommend installing the CodeDeploy agent with AWS Systems Manager to be able to configure scheduled updates of the agent. For more information, see [Install the CodeDeploy agent using AWS Systems Manager](codedeploy-agent-operations-install-ssm.md).

Use the following topics to install and run the CodeDeploy agent using the command line.

**Topics**
+ [

# Install the CodeDeploy agent for Amazon Linux or RHEL
](codedeploy-agent-operations-install-linux.md)
+ [

# Install the CodeDeploy agent for Ubuntu Server
](codedeploy-agent-operations-install-ubuntu.md)
+ [

# Install the CodeDeploy agent for Windows Server
](codedeploy-agent-operations-install-windows.md)

# Install the CodeDeploy agent for Amazon Linux or RHEL
<a name="codedeploy-agent-operations-install-linux"></a>

Sign in to the instance, and run the following commands, one at a time. Running the command `sudo yum update` first is considered best practice when using `yum` to install packages, but you can skip it if you do not wish to update all of your packages.

```
sudo yum update
```

```
sudo yum install ruby
```

```
sudo yum install wget
```

(Optional) To clean the AMI of any previous agent caching information, run the following script:

```
#!/bin/bash
CODEDEPLOY_BIN="/opt/codedeploy-agent/bin/codedeploy-agent"
$CODEDEPLOY_BIN stop
yum erase codedeploy-agent -y
```

Change to your home directory:

```
cd /home/ec2-user
```

**Note**  
In the previous command, `/home/ec2-user` represents the default user name for an Amazon Linux or RHEL Amazon EC2 instance. If your instance was created using a custom AMI, the AMI owner might have specified a different default user name. 

Download the CodeDeploy agent installer:

```
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
```

*bucket-name* is the name of the Amazon S3 bucket that contains the CodeDeploy Resource Kit files for your region, and *region-identifier* is the identifier for your region.

For example:

`https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

For a list of bucket names and region identifiers, see [Resource kit bucket names by Region](resource-kit.md#resource-kit-bucket-names).

Set execute permissions on the `install` file:

```
chmod +x ./install
```

To install the latest version of the CodeDeploy agent:
+ 

  ```
  sudo ./install auto
  ```

To install a specific version of the CodeDeploy agent:
+ List the available versions in your region:

  ```
  aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.rpm$'
  ```
+ Install one of the versions:

  ```
  sudo ./install auto -v releases/codedeploy-agent-version.noarch.rpm
  ```
**Note**  
AWS supports the latest minor version of the CodeDeploy agent. Currently the latest minor version is 1.7.x.

To check that the service is running, run the following command:

```
systemctl status codedeploy-agent
```

If the CodeDeploy agent is installed and running, you should see a message like `The AWS CodeDeploy agent is running`.

If you see a message like `error: No AWS CodeDeploy agent running`, start the service and run the following two commands, one at a time:

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

# Install the CodeDeploy agent for Ubuntu Server
<a name="codedeploy-agent-operations-install-ubuntu"></a>

**Note**  
We recommend installing the CodeDeploy agent with AWS Systems Manager to be able to configure scheduled updates of the agent. For more information, see [Install the CodeDeploy agent using AWS Systems Manager](codedeploy-agent-operations-install-ssm.md).

**To install the CodeDeploy agent on Ubuntu Server**

1. Sign in to the instance.

1. Enter the following commands, one after the other:

   ```
   sudo apt update
   ```

   ```
   sudo apt install ruby-full
   ```

   ```
   sudo apt install wget
   ```

1. Enter the following command:

   ```
   cd /home/ubuntu
   ```

   */home/ubuntu* represents the default user name for an Ubuntu Server instance. If your instance was created using a custom AMI, the AMI owner might have specified a different default user name. 

1. Enter the following command:

   ```
   wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
   ```

   *bucket-name* is the name of the Amazon S3 bucket that contains the CodeDeploy Resource Kit files for your region, and *region-identifier* is the identifier for your region.

   For example:

   `https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

   For a list of bucket names and region identifiers, see [Resource kit bucket names by Region](resource-kit.md#resource-kit-bucket-names).

1. Enter the following command:

   ```
   chmod +x ./install
   ```

1. Do one of the following:
   + To install the latest version of the CodeDeploy agent on any supported version of Ubuntu Server *except* 20.04:

     ```
     sudo ./install auto
     ```
   + To install the latest version of the CodeDeploy agent on Ubuntu Server 20.04:
**Note**  
Writing the output to a temporary log file is a workaround that should be used while we address a known bug with the `install` script on Ubuntu Server 20.04.

     ```
     sudo ./install auto > /tmp/logfile
     ```
   + To install a specific version of the CodeDeploy agent on any supported version of Ubuntu Server *except* 20.04:
     + List the available versions in your region:

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + Install one of the versions:

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb
       ```
**Note**  
AWS supports the latest minor version of the CodeDeploy agent. Currently the latest minor version is 1.7.x.
   + To install a specific version of the CodeDeploy agent on Ubuntu Server 20.04:
     + List the available versions in your region:

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + Install one of the versions:

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb > /tmp/logfile
       ```
**Note**  
Writing the output to a temporary log file is a workaround that should be used while we address a known bug with the `install` script on Ubuntu Server 20.04.
**Note**  
AWS supports the latest minor version of the CodeDeploy agent. Currently the latest minor version is 1.7.x.

**To check that the service is running**

1. Enter the following command:

   ```
   systemctl status codedeploy-agent
   ```

   If the CodeDeploy agent is installed and running, you should see a message like `The AWS CodeDeploy agent is running`.

1. If you see a message like `error: No AWS CodeDeploy agent running`, start the service and run the following two commands, one at a time:

   ```
   systemctl start codedeploy-agent
   ```

   ```
   systemctl status codedeploy-agent
   ```

# Install the CodeDeploy agent for Windows Server
<a name="codedeploy-agent-operations-install-windows"></a>

On Windows Server instances, you can use one of these methods to download and install the CodeDeploy agent:
+ Use AWS Systems Manager (recommended)
+ Run a series of Windows PowerShell commands.
+ Choose a direct download link.
+ Run an Amazon S3 copy command.

**Note**  
The folder that the CodeDeploy agent is installed to is `C:\Program Data\Amazon\CodeDeploy`. Make sure there are no directory junctions or symlinks on this path.

**Topics**
+ [

## Use Systems Manager
](#codedeploy-agent-operations-install-system-manager)
+ [

## Use Windows PowerShell
](#codedeploy-agent-operations-install-windows-powershell)
+ [

## Use a direct link
](#codedeploy-agent-operations-install-windows-direct-link)
+ [

## Use an Amazon S3 copy command
](#codedeploy-agent-operations-install-windows-s3-copy)

## Use Systems Manager
<a name="codedeploy-agent-operations-install-system-manager"></a>

Follow the instructions in [Install the CodeDeploy agent using AWS Systems Manager](codedeploy-agent-operations-install-ssm.md) to install the CodeDeploy agent.

## Use Windows PowerShell
<a name="codedeploy-agent-operations-install-windows-powershell"></a>

Sign in to the instance, and run the following commands in Windows PowerShell:

1.  Require that all scripts and configuration files downloaded from the Internet be signed by a trusted publisher. If you are prompted to change the execution policy, type "**Y**." 

   ```
    Set-ExecutionPolicy RemoteSigned
   ```

1.  Load the AWS Tools for Windows PowerShell. 

   ```
   Import-Module AWSPowerShell
   ```

1.  Create a directory into where the CodeDeploy agent installation file is downloaded. 

   ```
   New-Item -Path "c:\temp" -ItemType "directory" -Force
   ```

1. Configure AWS credentials using the `Set-AWSCredential` and `Initialize-AWSDefaultConfiguration` commands. For more information, see [Using AWS credentials](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html) in the *AWS tools for PowerShell User Guide*.

1.  Download the CodeDeploy agent installation file. 
**Note**  
AWS supports the latest minor version of the CodeDeploy agent. Currently the latest minor version is 1.7.x.

   To install the latest version of the CodeDeploy agent:
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi
     ```

   To install a specific version of the CodeDeploy agent:
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key releases/codedeploy-agent-###.msi -File c:\temp\codedeploy-agent.msi
     ```

   *bucket-name* is the name of the Amazon S3 bucket that contains the CodeDeploy Resource Kit files for your region. For example, for the US East (Ohio) Region, replace *bucket-name* with `aws-codedeploy-us-east-2`. For a list of bucket names, see [Resource kit bucket names by Region](resource-kit.md#resource-kit-bucket-names).

1.  Run the CodeDeploy agent installation file. 

   ```
   c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt
   ```

To check that the service is running, run the following command:

```
powershell.exe -Command Get-Service -Name codedeployagent
```

 If the CodeDeploy agent was just installed and has not been started, then after running the **Get-Service** command, under **Status**, you should see **Start...**:

```
Status     Name                DisplayName
------     ----                -----------
Start...   codedeployagent    CodeDeploy Host Agent Service
```

If the CodeDeploy agent is already running, after running the **Get-Service** command, under **Status**, you should see **Running**:

```
Status     Name                DisplayName
------     ----                -----------
Running    codedeployagent    CodeDeploy Host Agent Service
```

## Use a direct link
<a name="codedeploy-agent-operations-install-windows-direct-link"></a>

If the browser security settings on the Windows Server instance provide the permissions (for example, to `https://s3.*.amazonaws.com`), you can use a direct link for your Region to download the CodeDeploy agent and then run the installer manually.

The link is:

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent.msi
```

...where *region* is the AWS Region where you're deploying your application.

For example:

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent.msi
```

**Important**  
Obtain the `.msi` file from the same Region as your CodeDeploy application. Choosing a different Region may cause `inconsistent region` failures in the `codedeploy-agent-log` file when you run the `.msi` file.

## Use an Amazon S3 copy command
<a name="codedeploy-agent-operations-install-windows-s3-copy"></a>

If the AWS CLI is installed on the instance, you can use the Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) command to download the CodeDeploy agent and then run the installer manually. For information, see [Install the AWS Command Line Interface on Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html). 

The Amazon S3 command is:

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent.msi codedeploy-agent.msi --region region
```

...where *region* is the AWS Region where you're deploying your application.

For example:

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent.msi codedeploy-agent.msi --region af-south-1
```

# Update the CodeDeploy agent
<a name="codedeploy-agent-operations-update"></a>

You can configure automatic, scheduled updates of the CodeDeploy agent on all supported operating systems using AWS Systems Manager. You can also force updates on all supported operating systems by running a command on an instance.

**Topics**
+ [

# Update the CodeDeploy agent on Amazon Linux or RHEL
](codedeploy-agent-operations-update-linux.md)
+ [

# Update the CodeDeploy agent on Ubuntu Server
](codedeploy-agent-operations-update-ubuntu.md)
+ [

# Update the CodeDeploy agent on Windows Server
](codedeploy-agent-operations-update-windows.md)

# Update the CodeDeploy agent on Amazon Linux or RHEL
<a name="codedeploy-agent-operations-update-linux"></a>

To configure automatic, scheduled updates of the CodeDeploy agent using AWS Systems Manager, follow the steps in [Install the CodeDeploy agent with AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html).

If you want to force an update of the CodeDeploy agent, sign in to the instance, and run the following command:

```
sudo /opt/codedeploy-agent/bin/install auto
```

# Update the CodeDeploy agent on Ubuntu Server
<a name="codedeploy-agent-operations-update-ubuntu"></a>

To configure automatic, scheduled updates of the CodeDeploy agent using AWS Systems Manager, follow the steps in [Install the CodeDeploy agent with AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html).

If you want to force an update of the CodeDeploy agent, sign in to the instance, and run the following command:

```
sudo /opt/codedeploy-agent/bin/install auto
```

# Update the CodeDeploy agent on Windows Server
<a name="codedeploy-agent-operations-update-windows"></a>

You can enable automatic updates of the CodeDeploy agent with AWS Systems Manager. With Systems Manager, you can configure an update schedule for your Amazon EC2 or on-premises instances by creating an association with Systems Manager State Manager. You can also manually update the CodeDeploy agent by uninstalling the current version and installing a newer one.

**Topics**
+ [

## Set up automatic CodeDeploy agent update with AWS Systems Manager
](#codedeploy-agent-operations-update-windows-ssm)
+ [

## Update the CodeDeploy agent manually
](#codedeploy-agent-operations-update-windows-manual)
+ [

## (Deprecated) Update the CodeDeploy agent with the Windows Server Updater
](#codedeploy-agent-operations-update-windows-updater)

## Set up automatic CodeDeploy agent update with AWS Systems Manager
<a name="codedeploy-agent-operations-update-windows-ssm"></a>

To configure Systems Manager and enable automatic updates of the CodeDeploy agent, follow the instructions in [ Install the CodeDeploy agent using AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html).

## Update the CodeDeploy agent manually
<a name="codedeploy-agent-operations-update-windows-manual"></a>

To update the CodeDeploy agent manually, you can install the latest version from the CLI or using Systems Manager. Follow the instructions in [ Install the CodeDeploy agent.](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) It is recommended that you uninstall older versions of the CodeDeploy agent by following the instructions in [ Uninstall the CodeDeploy agent](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-uninstall.html).

## (Deprecated) Update the CodeDeploy agent with the Windows Server Updater
<a name="codedeploy-agent-operations-update-windows-updater"></a>

**Note**  
The CodeDeploy agent updater for Windows Server is deprecated and will not update to any version after 1.0.1.1597.

To enable automatic updates of the CodeDeploy agent, install the CodeDeploy agent updater for Windows Server on new or existing instances. The updater checks periodically for new versions. When a new version is detected, the updater uninstalls the current version of the agent, if one is installed, before installing the newest version.

If a deployment is already underway when the updater detects a new version, the deployment continues to completion. If a deployment attempts to start during the update process, the deployment fails.

If you want to force an update of the CodeDeploy agent, follow the instructions in [Install the CodeDeploy agent for Windows Server](codedeploy-agent-operations-install-windows.md).

On Windows Server instances, you can download and install the CodeDeploy agent updater by running Windows PowerShell commands, using a direct download link, or running an Amazon S3 copy command.

**Topics**
+ [

### Use Windows PowerShell
](#codedeploy-agent-operations-update-windows-powershell)
+ [

### Use a direct link
](#codedeploy-agent-operations-update-windows-direct-link)
+ [

### Use an Amazon S3 copy command
](#codedeploy-agent-operations-update-windows-s3-copy)

### Use Windows PowerShell
<a name="codedeploy-agent-operations-update-windows-powershell"></a>

Sign in to the instance, and run the following commands in Windows PowerShell, one at a time:

```
Set-ExecutionPolicy RemoteSigned
```

 If you are prompted to change the execution policy, choose **Y** so Windows PowerShell requires all scripts and configuration files downloaded from the internet be signed by a trusted publisher. 

```
Import-Module AWSPowerShell
```

```
New-Item -Path "c:\temp" -ItemType "directory" -Force
```

```
powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent-updater.msi -File c:\temp\codedeploy-agent-updater.msi
```

```
c:\temp\codedeploy-agent-updater.msi /quiet /l c:\temp\host-agent-updater-log.txt
```

```
powershell.exe -Command Get-Service -Name codedeployagent
```

*bucket-name* is the name of the Amazon S3 bucket that contains the CodeDeploy Resource Kit files for your region. For example, for the US East (Ohio) Region, replace *bucket-name* with `aws-codedeploy-us-east-2`. For a list of bucket names, see [Resource kit bucket names by Region](resource-kit.md#resource-kit-bucket-names).

If you need to troubleshoot an update process error, type the following command to open the CodeDeploy agent updater log file:

```
notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log
```

### Use a direct link
<a name="codedeploy-agent-operations-update-windows-direct-link"></a>

If the browser security settings on the Windows Server instance provide the required permissions (for example, to ` http://s3.*.amazonaws.com ` ), you can use a direct link to download the CodeDeploy agent updater.

The link is:

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent-updater.msi
```

...where *region* is the AWS Region where you're updating your application.

For example:

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi
```

### Use an Amazon S3 copy command
<a name="codedeploy-agent-operations-update-windows-s3-copy"></a>

If the AWS CLI is installed on the instance, you can use the Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) command to download the CodeDeploy agent updater and then run the installer manually. For information, see [Install the AWS Command Line Interface on Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html). 

The Amazon S3 command is:

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region region
```

...where *region* is the AWS Region where you're updating your application.

For example:

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region af-south-1
```

# Uninstall the CodeDeploy agent
<a name="codedeploy-agent-operations-uninstall"></a>

You can remove the CodeDeploy agent from instances when it is no longer needed or when you want to perform a fresh installation.

## Uninstall the CodeDeploy agent from Amazon Linux or RHEL
<a name="codedeploy-agent-operations-uninstall-linux"></a>

To uninstall the CodeDeploy agent, sign in to the instance and run the following command:

```
sudo yum erase codedeploy-agent
```

## Uninstall the CodeDeploy agent from Ubuntu Server
<a name="codedeploy-agent-operations-uninstall-ubuntu"></a>

To uninstall the CodeDeploy agent, sign in to the instance and run the following command:

```
sudo dpkg --purge codedeploy-agent
```

## Uninstall the CodeDeploy agent from Windows Server
<a name="codedeploy-agent-operations-uninstall-windows"></a>

To uninstall the CodeDeploy agent, sign in to the instance and run the following three commands, one at a time:

```
wmic
```

```
product where name="CodeDeploy Host Agent" call uninstall /nointeractive
```

```
exit
```

You can also sign in to the instance, and in **Control Panel**, open **Programs and Features**, choose **CodeDeploy Host Agent**, and then choose **Uninstall**.

# Send CodeDeploy agent logs to CloudWatch
<a name="codedeploy-agent-operations-cloudwatch-agent"></a>

You can send CodeDeploy agent metric and log data to CloudWatch using the [unified CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html), or more simply, the CloudWatch agent.

Use the following instructions to install the CloudWatch agent and configure it for use with CodeDeploy agents.

## Prerequisites
<a name="codedeploy-agent-operations-cloudwatch-prerequisites"></a>

Before you begin, complete the following tasks:
+ Install the CodeDeploy agent and make sure it's running. For more information, see [Install the CodeDeploy agent](codedeploy-agent-operations-install.md) and [Verify the CodeDeploy agent is running](codedeploy-agent-operations-verify.md).
+ Install the CloudWatch agent. For more information, see [Installing the CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html).
+ Add the following permissions to the CodeDeploy IAM instance profile:
  + CloudWatchLogsFullAccess
  + CloudWatchAgentServerPolicy

  For more information on the CodeDeploy instance profile, see [Step 4: Create an IAM instance profile for your Amazon EC2 instances](getting-started-create-iam-instance-profile.md) of [Getting started with CodeDeploy](getting-started-codedeploy.md).

## Configure the CloudWatch agent to collect CodeDeploy logs
<a name="codedeploy-agent-operations-cloudwatch-configure"></a>

You can configure the CloudWatch agent by stepping through a wizard or by manually creating or editing a configuration file.

**To configure the CloudWatch agent using the wizard (Linux)**

1. Run the wizard, as described in [Run the CloudWatch agent configuration wizard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard).

1. In the wizard, when asked `Do you want to monitor any log files?` enter **1**.

1. Specify the CodeDeploy agent log file, as follows:

   1. For `Log file path` enter the path for the CodeDeploy log file, for example: **/var/log/aws/codedeploy-agent/codedeploy-agent.log**.

   1. For `Log group name` enter a log group name, for example: **codedeploy-agent-log**.

   1. For `Log stream name` enter a log stream name, for example: **\$1instance\$1id\$1-codedeploy-agent-log**.

1. When asked `Do you want to specify any additional log files?`, enter **1**.

1. Specify the CodeDeploy agent deployment logs, as follows:

   1. For `Log file path` enter the path for the CodeDeploy deployment log file, for example: **/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log**.

   1. For `Log group name` enter a log group name, for example: **codedeploy-agent-deployment-log**.

   1. For `Log stream name` enter a log stream name, for example: **\$1instance\$1id\$1-codedeploy-agent-deployment-log**.

1. When asked `Do you want to specify any additional log files?`, enter **1**.

1. Specify the CodeDeploy agent updater logs, as follows:

   1. For `Log file path` enter the path for the CodeDeploy updater log file, for example: **/tmp/codedeploy-agent.update.log**.

   1. For `Log group name` enter a log group name, for example: **codedeploy-agent-updater-log**.

   1. For `Log stream name` enter a log stream name, for example: **\$1instance\$1id\$1-codedeploy-agent-updater-log**.

**To configure the CloudWatch agent using the wizard (Windows)**

1. Run the wizard, as described in [Run the CloudWatch agent configuration wizard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard).

1. In the wizard, when asked `Do you want to monitor any customized log files?` enter **1**.

1. Specify the CodeDeploy log file, as follows:

   1. For `Log file path` enter the path r the CodeDeploy agent log file, for example: **C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1log\$1codedeploy-agent-log.txt**.

   1. For `Log group name` enter a log group name, for example: **codedeploy-agent-log**.

   1. For `Log stream name` enter a log stream name, for example: **\$1instance\$1id\$1-codedeploy-agent-log**.

1. When asked `Do you want to specify any additional log files?`, enter **1**.

1. Specify the CodeDeploy agent deployment logs, as follows:

   1. For `Log file path` enter the path the CodeDeploy deployment log file, for example: **C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1deployment-logs\$1codedeploy-agent-deployments.log**.

   1. For `Log group name` enter a log group name, for example: **codedeploy-agent-deployment-log**.

   1. For `Log stream name` enter a log stream name, for example: **\$1instance\$1id\$1-codedeploy-agent-deployment-log**.

**To configure the CloudWatch agent by manually creating or editing a configuration file (Linux)**

1. Create or edit the CloudWatch agent configuration file as described in [Manually create or edit the CloudWatch agent configuration file](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).

1. Make sure that the file is called `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json` and that it contains the following code:

   ```
   ...
   "logs": {
       "logs_collected": {
           "files": {
               "collect_list": [
                   {
                       "file_path": "/var/log/aws/codedeploy-agent/codedeploy-agent.log",
                       "log_group_name": "codedeploy-agent-log",
                       "log_stream_name": "{instance_id}-agent-log"
                   },
                   {
                       "file_path": "/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log",
                       "log_group_name": "codedeploy-agent-deployment-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                   },
                   {
                       "file_path": "/tmp/codedeploy-agent.update.log",
                       "log_group_name": "codedeploy-agent-updater-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-updater-log"
                   }
               ]
           }
       }
   }
   ...
   ```

**To configure the CloudWatch agent by manually creating or editing a configuration file (Windows)**

1. Create or edit the CloudWatch agent configuration file as described in [Manually create or edit the CloudWatch agent configuration file](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).

1. Make sure that the file is called `C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json` and that it contains the following code:

   ```
   ...
   "logs": {
           "logs_collected": {
               "files": {
                   "collect_list": [
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\log\\codedeploy-agent-log.txt",
                           "log_group_name": "codedeploy-agent-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-log"
                       },
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\deployment-logs\\codedeploy-agent-deployments.log",
                           "log_group_name": "codedeploy-agent-deployment-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                       }
                   ]
               },
               ...
           }
       },
   ...
   ```

## Restart the CloudWatch agent
<a name="codedeploy-agent-operations-cloudwatch-restart"></a>

After making your changes, restart the CloudWatch agent as described in [Start the CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html#start-CloudWatch-Agent-EC2-fleet).