amazon-ssm-agent

module
v0.0.0-...-0117b6e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2024 License: Apache-2.0

README

ReportCard Build Status

Amazon SSM Agent

The Amazon EC2 Simple Systems Manager (SSM) Agent is software developed for the Simple Systems Manager Service. The SSM Agent is the primary component of a feature called Run Command.

Overview

The SSM Agent runs on EC2 instances and enables you to quickly and easily execute remote commands or scripts against one or more instances. The agent uses SSM documents. When you execute a command, the agent on the instance processes the document and configures the instance as specified. Currently, the agent and Run Command enable you to quickly run Shell scripts on an instance using the AWS-RunShellScript SSM document. SSM Agent also enables the Session Manager capability that lets you manage your Amazon EC2 instance through an interactive one-click browser-based shell or through the AWS CLI. The first time a Session Manager session is started on an instance, the agent will create a user called "ssm-user" with sudo or administrator privilege. Session Manager sessions will be launched in context of this user.

Verify Requirements
Setup
Executing Commands

SSM Run Command Walkthrough Using the AWS CLI

Starting Sessions

Session Manager Walkthrough Using the AWS Console and CLI

Troubleshooting

Troubleshooting SSM Run Command Troubleshooting SSM Session Manager

Feedback

Thank you for helping us to improve Systems Manager, Run Command and Session Manager. Please send your questions or comments to Systems Manager Forums

docker build -t ssm-agent-build-image .
  • Build the agent
docker run -it --rm --name ssm-agent-build-container -v `pwd`:/amazon-ssm-agent ssm-agent-build-image make build-release
Building on Linux
  • Install go Getting started

  • Install rpm-build and rpmdevtools

  • Cross Compile SSM Agent

  • Run make build to build the SSM Agent for Linux, Debian, Windows environment.

  • Run make build-release to build the agent and also packages it into a RPM, DEB and ZIP package.

The following folders are generated when the build completes:

bin/debian_386
bin/debian_amd64
bin/linux_386
bin/linux_amd64
bin/linux_arm
bin/linux_arm64
bin/windows_386
bin/windows_amd64
  • To enable the Agent for Session Manager scenario on Windows instances
    • Clone the repo from https://github.com/masatma/winpty.git
    • Follow instructions on https://github.com/rprichard/winpty to build winpty 64-bit binaries
    • Copy the winpty.dll and winpty-agent.exe to the bin/SessionManagerShell folder For the Windows Operating System, Session Manager is only supported on Windows Server 2008 R2 through Windows Server 2019 64-bit versions.

Please follow the user guide to copy and install the SSM Agent

Code Layout
  • Source code
    • Core functionality such as worker management is under core/
    • Agent worker code is under agent/
    • Other functionality such as IPC is under common/
  • Vendor package source code is under vendor/src
  • rpm and dpkg artifacts are under packaging
  • build scripts are under Tools/src
Linting

To lint the entire module call the lint-all target. This executes golangci-lint on all packages in the module. You can configure golangci-lint with different linters using the .golangci.yml file.

For golangci-lint installation instructions see https://golangci-lint.run/usage/install/ For more information on the golangci-lint configuration file see https://golangci-lint.run/usage/configuration/ For more information on the linters used see https://golangci-lint.run/usage/linters/

GOPATH

To use vendor dependencies, the suggested GOPATH format is :<packagesource>/vendor:<packagesource>

Make Targets

The following targets are available. Each may be run with make <target>.

Make Target Description
build (Default) build builds the agent for Linux, Debian, Darwin and Windows amd64 and 386 environment
build-release build-release checks code style and coverage, builds the agent and also packages it into a RPM, DEB and ZIP package
release release checks code style and coverage, runs tests, packages all dependencies to the bin folder.
package package packages build result into a RPM, DEB and ZIP package
pre-build pre-build goes through Tools/src folder to make sure all the script files are executable
checkstyle checkstyle runs the checkstyle script
analyze-install analyze-install install static analysis dependencies for local use
analyze analyze runs static analysis script to find possible vulnerabilities
quick-integtest quick-integtest runs all tests tagged with integration using go test
quick-test quick-test runs all the tests including integration and unit tests using go test
coverage coverage runs all tests and calculate code coverage
build-linux build-linux builds the agent for execution in the Linux amd64 environment
build-windows build-windows builds the agent for execution in the Windows amd64 environment
build-darwin build-darwin builds the agent for execution in the Darwin amd64 environment
build-linux-386 build-linux-386 builds the agent for execution in the Linux 386 environment
build-windows-386 build-windows-386 builds the agent for execution in the Windows 386 environment
build-darwin-386 build-darwin-386 builds the agent for execution in the Darwin 386 environment
build-arm build-arm builds the agent for execution in the arm environment
build-arm64 build-arm64 builds the agent for execution in the arm64 environment
lint-all lint-all runs golangci-lint on all packages. golangci-lint is configured by .golangci.yml
package-rpm package-rpm builds the agent and packages it into a RPM package for Linux amd64 based distributions
package-deb package-deb builds the agent and packages it into a DEB package Debian amd64 based distributions
package-win package-win builds the agent and packages it into a ZIP package Windows amd64 based distributions
package-rpm-386 package-rpm-386 builds the agent and packages it into a RPM package for Linux 386 based distributions
package-deb-386 package-deb-386 builds the agent and packages it into a DEB package Debian 386 based distributions
package-win-386 package-win-386 builds the agent and packages it into a ZIP package Windows 386 based distributions
package-rpm-arm64 package-rpm-arm64 builds the agent and packages it into a RPM package Linux arm64 based distributions
package-deb-arm package-deb-arm builds the agent and packages it into a DEB package Debian arm based distributions
package-deb-arm64 package-deb-arm64 builds the agent and packages it into a DEB package Debian arm64 based distributions
package-linux package-linux create update packages for Linux and Debian based distributions
package-windows package-windows create update packages for Windows based distributions
package-darwin package-darwin create update packages for Darwin based distributions
get-tools get-tools gets gocode and oracle using go get
clean clean removes build artifacts
Contributing

Contributions and feedback are welcome! Proposals and Pull Requests will be considered and responded to. Please see the CONTRIBUTING.md file for more information.

Amazon Web Services does not currently provide support for modified copies of this software.

Runtime Configuration

To set up your own custom configuration for the agent:

  • Navigate to /etc/amazon/ssm/ (or C:\Program Files\Amazon\SSM for windows)
  • Copy the contents of amazon-ssm-agent.json.template to a new file amazon-ssm-agent.json
  • Restart agent
Config Property Definitions:
  • Profile - represents configurations for aws credential profile used to get managed instance role and credentials
    • ShareCreds (boolean)
      • Default: true
    • ShareProfile (string)
    • ForceUpdateCreds (boolean) - overwrite shared credentials file if existing one cannot be parsed
      • Default: false
    • KeyAutoRotateDays (int) - defines the maximum age in days for on-prem private key, default value might change to 30 in the close future
      • Default: 0 (never rotate)
  • Mds - represents configuration for Message delivery service (MDS) where agent listens for incoming messages
    • CommandWorkersLimit (int)
      • Default: 5
    • StopTimeoutMillis (int64)
      • Default: 20000
    • Endpoint (string)
    • CommandRetryLimit (int)
      • Default: 15
  • Ssm - represents configuration for Simple Systems Manager (SSM)
    • Endpoint (string)
    • HealthFrequencyMinutes (int)
      • Default: 5
    • CustomInventoryDefaultLocation (string)
    • AssociationLogsRetentionDurationHours (int)
      • Default: 24
    • RunCommandLogsRetentionDurationHours (int)
      • Default: 336
    • SessionLogsRetentionDurationHours (int)
      • Default: 336
    • SessionLogsDestination (string) - Configure where you want Session Manager to write session data.
      • Default: "disk" - Write session data to disk.
      • OptionalValue: "none" - Don't write session data anywhere when CloudWatch and S3 logging are disabled.
    • PluginLocalOutputCleanup (string) - Configure when after execution it is safe to delete local plugin output logs in orchestration folder
      • Default: "" - Don't delete logs immediately after execution. Fall back to AssociationLogsRetentionDurationHours, RunCommandLogsRetentionDurationHours, and SessionLogsRetentionDurationHours
      • OptionalValue: "after-execution" - Delete plugin output file locally after plugin execution
      • OptionalValue: "after-upload" - Delete plugin output locally after successful s3 or cloudWatch upload
    • OrchestrationDirectoryCleanup (string) - Configure only when it is safe to delete orchestration folder after document execution. This config overrides PluginLocalOutputCleanup when set.
      • Default: "" - Don't delete orchestration folder after execution
      • OptionalValue: "clean-success" - Deletes the orchestration folder only for successful document executions.
      • OptionalValue: "clean-success-failed" - Deletes the orchestration folder for successful and failed document executions.
  • Mgs - represents configuration for Message Gateway service
    • Region (string)
    • Endpoint (string)
    • StopTimeoutMillis (int64)
      • Default: 20000
    • SessionWorkersLimit (int)
      • Default: 1000
    • DeniedPortForwardingRemoteIPs ([]string)
      • Default: ["169.254.169.254", "fd00:ec2::254", "169.254.169.253", "fd00:ec2::253"]
  • Agent - represents metadata for amazon-ssm-agent
    • Region (string)
    • OrchestrationRootDir (string)
      • Default: "orchestration"
    • SelfUpdate (boolean)
      • Default: false
    • TelemetryMetricsToCloudWatch (boolean)
      • Default: false
    • TelemetryMetricsToSSM (boolean)
      • Default: true
    • AuditExpirationDay (int)
      • Default: 7
    • LongRunningWorkerMonitorIntervalSeconds (int)
      • Default: 60
    • GoMaxProcForAgentWorker (int)
      • Default: 0
  • Os - represents os related information, will be logged in reply messages
    • Lang (string)
      • Default: "en-US"
    • Name (string)
    • Version (string)
      • Default: 1
  • S3 - represents configurations related to S3 bucket and key for SSM. Endpoint and region are typically determined automatically, and should only be set if a custom endpoint is required. LogBucket and LogKey are currently unused.
    • Endpoint (string)
      • Default: ""
    • Region (string) - Ignored
    • LogBucket (string) - Ignored
    • LogKey (string) - Ignored
  • Kms - represents configuration for Key Management Service if encryption is enabled for this session (i.e. kmsKeyId is set or using "Port" plugin)
    • Endpoint (string)

Release

After the SSM Agent source code has been released to github, it can take up to 2 weeks for the install packages to propagate to all AWS regions.

The following commands can be used to pull the VERSION file and check the latest agent available in a region.

  • Regional Bucket (Non-CN) - curl https://s3.{region}.amazonaws.com/amazon-ssm-{region}/latest/VERSION
    • Replace {region} with region code like us-east-1.
  • Regional Bucket (CN) - curl https://s3.{region}.amazonaws.com.cn/amazon-ssm-{region}/latest/VERSION
    • Replace {region} with region code cn-north-1, cn-northwest-1.
  • Global Bucket - curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/VERSION

License

The Amazon SSM Agent is licensed under the Apache 2.0 License.

Directories

Path Synopsis
Package agent represents the core SSM agent object
Package agent represents the core SSM agent object
agentlogstocloudwatch/cloudwatchlogspublisher
Package cloudwatchlogspublisher is responsible for pulling logs from the log queue and publishing them to cloudwatch
Package cloudwatchlogspublisher is responsible for pulling logs from the log queue and publishing them to cloudwatch
appconfig
Package appconfig manages the configuration of the agent.
Package appconfig manages the configuration of the agent.
association/converter
Package converter converts the plugin information from version 1.0 and 1.2 to version 2.0
Package converter converts the plugin information from version 1.0 and 1.2 to version 2.0
association/frequentcollector
Package frequentcollector enable customers to detect changed inventory types and upload the changed inventory data to SSM service between 2 scheduled collections.
Package frequentcollector enable customers to detect changed inventory types and upload the changed inventory data to SSM service between 2 scheduled collections.
association/mocks/processor
Package processor manage polling of associations, dispatching association to processor
Package processor manage polling of associations, dispatching association to processor
association/mocks/service
Package service wraps SSM service
Package service wraps SSM service
association/model
Package model provides model definition for association
Package model provides model definition for association
association/parser
Package parser contains utilities for parsing and encoding MDS/SSM messages.
Package parser contains utilities for parsing and encoding MDS/SSM messages.
association/processor
Package processor manage polling of associations, dispatching association to processor
Package processor manage polling of associations, dispatching association to processor
association/rateexpr
Package rateexpr provides logic for parsing and scheduling rate expressions
Package rateexpr provides logic for parsing and scheduling rate expressions
association/recorder
Package recorder records the association name of the last executed association to avoid duplicate execution
Package recorder records the association name of the last executed association to avoid duplicate execution
association/scheduleexpression
Package scheduleexpression provides interface for schedule expression and factory for constructing generic parsed schedule expression
Package scheduleexpression provides interface for schedule expression and factory for constructing generic parsed schedule expression
association/schedulemanager
Package schedulemanager schedules association and submits the association to the task pool schedulemanager is a singleton so it can be access at the plugin level
Package schedulemanager schedules association and submits the association to the task pool schedulemanager is a singleton so it can be access at the plugin level
association/schedulemanager/signal
Package signal manages signal channel required by sending/receiving request for executing scheduled association
Package signal manages signal channel required by sending/receiving request for executing scheduled association
association/scheduler
Package scheduler provides ability to create scheduled job
Package scheduler provides ability to create scheduled job
association/service
Package service wraps SSM service
Package service wraps SSM service
cli
Package cli represents the entry point of the ssm agent cli.
Package cli represents the entry point of the ssm agent cli.
cli-main
Package main represents the entry point of the ssm agent cli.
Package main represents the entry point of the ssm agent cli.
cli/clicommand
Package clicommand contains the implementation of all commands for the ssm agent cli
Package clicommand contains the implementation of all commands for the ssm agent cli
cli/cliutil
Package cliutil contains helper functions for cli and clicommand
Package cliutil contains helper functions for cli and clicommand
cli/cliutil/mocks
Package mocks represents the mock for interface CliCommand in cliutil package.
Package mocks represents the mock for interface CliCommand in cliutil package.
context
Package context defines a type that carries context specific data such as the logger.
Package context defines a type that carries context specific data such as the logger.
contracts
Package contracts helps persist documents state to disk
Package contracts helps persist documents state to disk
executers
Package executers contains general purpose (shell) command executing objects.
Package executers contains general purpose (shell) command executing objects.
fileutil
Package fileutil contains utilities for working with the file system.
Package fileutil contains utilities for working with the file system.
fileutil/artifact
Package artifact contains utilities for working downloading files.
Package artifact contains utilities for working downloading files.
fileutil/filemanager
TODO: This package is a start to migration of the fileutil code to be inside an interface for better mocking.
TODO: This package is a start to migration of the fileutil code to be inside an interface for better mocking.
fileutil/filemanager/mock
Package fileutil_mock has mock functions for filemanager package
Package fileutil_mock has mock functions for filemanager package
framework/coremanager
Package coremanager encapsulates the logic for configuring, starting and stopping core modules
Package coremanager encapsulates the logic for configuring, starting and stopping core modules
framework/coremanager/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
framework/coremodules
Package coremodules contains a list of implemented core modules.
Package coremodules contains a list of implemented core modules.
framework/docmanager
Package docmanager helps persist documents state to disk
Package docmanager helps persist documents state to disk
framework/docparser
Package docparser contains methods for parsing and encoding any type of document, i.e.
Package docparser contains methods for parsing and encoding any type of document, i.e.
framework/docparser/parameters
Package parameters provides utilities to parse ssm document parameters
Package parameters provides utilities to parse ssm document parameters
framework/docparser/parameterstore
Package parameterstore contains modules to resolve ssm parameters present in the document.
Package parameterstore contains modules to resolve ssm parameters present in the document.
framework/docparser/paramvalidator
Package paramvalidator is responsible for registering all the param validators available and exposes getter functions to be utilized by other modules
Package paramvalidator is responsible for registering all the param validators available and exposes getter functions to be utilized by other modules
framework/docparser/paramvalidator/allowedregexparamvalidator
Package allowedregexparamvalidator is responsible for validating parameter value with regex pattern given in the document.
Package allowedregexparamvalidator is responsible for validating parameter value with regex pattern given in the document.
framework/docparser/paramvalidator/allowedvalueparamvalidator
Package allowedvalueparamvalidator is responsible for validating parameter value with the allowed values given in the document.
Package allowedvalueparamvalidator is responsible for validating parameter value with the allowed values given in the document.
framework/docparser/paramvalidator/minmaxcharparamvalidator
Package minmaxcharparamvalidator is responsible for validating parameter value with the min max char restriction given in the document for parameters.
Package minmaxcharparamvalidator is responsible for validating parameter value with the min max char restriction given in the document for parameters.
framework/docparser/paramvalidator/minmaxitemparamvalidator
Package minmaxitemparamvalidator is responsible for validating parameter value with the min max item restriction given in the document for parameters.
Package minmaxitemparamvalidator is responsible for validating parameter value with the min max item restriction given in the document for parameters.
framework/processor
Package processor defines the document processing unit interface
Package processor defines the document processing unit interface
framework/processor/executer
Package executer provides interfaces as document execution logic
Package executer provides interfaces as document execution logic
framework/processor/executer/basicexecuter
Package basicexecuter provides interfaces as document execution logic
Package basicexecuter provides interfaces as document execution logic
framework/processor/executer/iohandler
Package iohandler implements the iohandler for the plugins
Package iohandler implements the iohandler for the plugins
framework/processor/executer/iohandler/iomodule
Package iomodule implements the output modules
Package iomodule implements the output modules
framework/processor/executer/iohandler/iomodule/mock
Package iomodulemock implements the mock iomodule
Package iomodulemock implements the mock iomodule
framework/processor/executer/iohandler/mock
Package iohandlermocks implements the mock iohandler
Package iohandlermocks implements the mock iohandler
framework/processor/executer/iohandler/multiwriter
Package multiwriter implements a multi-writer
Package multiwriter implements a multi-writer
framework/processor/executer/iohandler/multiwriter/mock
Package multiwritermock creates the mock mulitwriter
Package multiwritermock creates the mock mulitwriter
framework/processor/executer/mock
Package executer provides interfaces as document execution logic
Package executer provides interfaces as document execution logic
framework/processor/executer/outofproc/proc
Package process wraps up the os.Process interface and also provides os-specific process lookup functions
Package process wraps up the os.Process interface and also provides os-specific process lookup functions
framework/processor/executer/outofproc/sessionworker
Package main implements a separate worker which is used to execute requests from session manager.
Package main implements a separate worker which is used to execute requests from session manager.
framework/processor/executer/plugin
Package plugin contains general interfaces and types relevant to plugins.
Package plugin contains general interfaces and types relevant to plugins.
framework/runpluginutil
Package runpluginutil run plugin utility functions without referencing the actually plugin impl packages
Package runpluginutil run plugin utility functions without referencing the actually plugin impl packages
health
Package health contains routines that periodically reports health information of the agent
Package health contains routines that periodically reports health information of the agent
health/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
hibernation
Package hibernation is responsible for the agent in hibernate mode.
Package hibernation is responsible for the agent in hibernate mode.
hibernation/mocks
Code generated by mockery v2.9.4.
Code generated by mockery v2.9.4.
ipc/messagebus
Package messagebus logic to send message and get reply over IPC
Package messagebus logic to send message and get reply over IPC
jsonutil
Package jsonutil contains various utilities for dealing with json data.
Package jsonutil contains various utilities for dealing with json data.
log
log/logger
Package ssmlog is used to initialize ssm functional logger
Package ssmlog is used to initialize ssm functional logger
log/ssmlog
Package ssmlog is used to initialize ssm functional logger
Package ssmlog is used to initialize ssm functional logger
longrunning
Package longrunning implements longrunning plugins
Package longrunning implements longrunning plugins
longrunning/datastore
Package datastore has utilites to read and write from long running plugins data-store
Package datastore has utilites to read and write from long running plugins data-store
longrunning/jobobject
Package JobObject allows creation of job object for SSM agent process.
Package JobObject allows creation of job object for SSM agent process.
longrunning/manager
Package manager encapsulates everything related to long running plugin manager that starts, stops & configures long running plugins
Package manager encapsulates everything related to long running plugin manager that starts, stops & configures long running plugins
longrunning/mocks/cloudwatch
Package cloudwatch implements cloudwatch plugin and its configuration
Package cloudwatch implements cloudwatch plugin and its configuration
longrunning/mocks/manager
Package manager encapsulates everything related to long running plugin manager that starts, stops & configures long running plugins
Package manager encapsulates everything related to long running plugin manager that starts, stops & configures long running plugins
longrunning/plugin
Package plugin contains all essential structs/interfaces for long running plugins
Package plugin contains all essential structs/interfaces for long running plugins
longrunning/plugin/cloudwatch
Package cloudwatch implements cloudwatch plugin and its configuration
Package cloudwatch implements cloudwatch plugin and its configuration
longrunning/plugin/rundaemon
Package rundaemon implements rundaemon plugin and its configuration
Package rundaemon implements rundaemon plugin and its configuration
managedInstances/auth
package auth provides methods to implement managed instances auth support
package auth provides methods to implement managed instances auth support
managedInstances/fingerprint
Package fingerprint contains functions that helps identify an instance this is done to protect customers from launching two instances with the same instance identifier and thus running commands intended for one on the other
Package fingerprint contains functions that helps identify an instance this is done to protect customers from launching two instances with the same instance identifier and thus running commands intended for one on the other
managedInstances/registration
package registration provides managed instance information
package registration provides managed instance information
managedInstances/sharedCredentials
package sharedCredentials provides access to the aws shared credentials file.
package sharedCredentials provides access to the aws shared credentials file.
managedInstances/user
package user re-implements os/user functions without the use of cgo
package user re-implements os/user functions without the use of cgo
managedInstances/vault
Package vault provide interface for data storage.
Package vault provide interface for data storage.
managedInstances/vault/fsvault
Package fsvault implements vault with file system storage.
Package fsvault implements vault with file system storage.
messageservice
Package messageservice will be responsible for initializing MDS and MGS interactors and then launch message handlers to handle the commands received from interactors.
Package messageservice will be responsible for initializing MDS and MGS interactors and then launch message handlers to handle the commands received from interactors.
messageservice/contracts
Package contracts defines the common structs needed for messageservice
Package contracts defines the common structs needed for messageservice
messageservice/interactor
Package interactor contains the logic to communicate with upstream core services MGS & MDS
Package interactor contains the logic to communicate with upstream core services MGS & MDS
messageservice/interactor/mdsinteractor
Package mdsinteractor will be responsible for communicating with MDS
Package mdsinteractor will be responsible for communicating with MDS
messageservice/interactor/mgsinteractor
Package mgsinteractor contains logic to open control channel and communicate with MGS
Package mgsinteractor contains logic to open control channel and communicate with MGS
messageservice/interactor/mgsinteractor/replytypes
Package replytypes will be responsible for handling agent run command reply type from the processor
Package replytypes will be responsible for handling agent run command reply type from the processor
messageservice/messagehandler
Package messagehandler defines methods to be used by Interactors for submission of commands to the processors through ProcessorWrappers It also forwards the replies receives from processor wrapper
Package messagehandler defines methods to be used by Interactors for submission of commands to the processors through ProcessorWrappers It also forwards the replies receives from processor wrapper
messageservice/messagehandler/idempotency
Package idempotency implements methods to maintain idempotency with the commands received
Package idempotency implements methods to maintain idempotency with the commands received
messageservice/messagehandler/processorwrappers
Package processorwrappers implements different processor wrappers to handle the processors which launches document worker and session worker for now
Package processorwrappers implements different processor wrappers to handle the processors which launches document worker and session worker for now
messageservice/utils
Package utils provides utility functions to be used by interactors
Package utils provides utility functions to be used by interactors
mocks/updateutil
Package updateutil contains updater specific utilities.
Package updateutil contains updater specific utilities.
platform
Package platform contains platform specific utilities.
Package platform contains platform specific utilities.
plugins/configurecontainers/windowscontainerutil
Package windowscontainerutil implements the the install and uninstall steps for windows for the configurecontainers plugin.
Package windowscontainerutil implements the the install and uninstall steps for windows for the configurecontainers plugin.
plugins/configuredaemon
Package configuredaemon implements the ConfigureDaemon plugin.
Package configuredaemon implements the ConfigureDaemon plugin.
plugins/configurepackage
Package configurepackage implements the ConfigurePackage plugin.
Package configurepackage implements the ConfigurePackage plugin.
plugins/configurepackage/birdwatcher/archive
package archive holds the resources for the archive
package archive holds the resources for the archive
plugins/configurepackage/birdwatcher/birdwatcherarchive
Package birdwatcherarchive contains the struct that is called when the package information is stored in birdwatcher
Package birdwatcherarchive contains the struct that is called when the package information is stored in birdwatcher
plugins/configurepackage/birdwatcher/documentarchive
Package documentarchive contains the struct that is called when the package information is stored in birdwatcher
Package documentarchive contains the struct that is called when the package information is stored in birdwatcher
plugins/configurepackage/birdwatcher/facade
This package returns the means of creating an object of type facade
This package returns the means of creating an object of type facade
plugins/configurepackage/birdwatcher/facade/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
plugins/configurepackage/birdwatcher/facade/retryer
Package retryer overrides the default ssm retryer delay logic to suit GetManifest, DescribeDocument and GetDocument
Package retryer overrides the default ssm retryer delay logic to suit GetManifest, DescribeDocument and GetDocument
plugins/configurepackage/installer
Package installer implements interfaces for installing and uninstalling packages
Package installer implements interfaces for installing and uninstalling packages
plugins/configurepackage/installer/mock
Package installer_mock implements the mock for the installer package
Package installer_mock implements the mock for the installer package
plugins/configurepackage/localpackages
Package localpackages implements the local storage for packages managed by the ConfigurePackage plugin.
Package localpackages implements the local storage for packages managed by the ConfigurePackage plugin.
plugins/configurepackage/localpackages/mock
Package repository_mock implements the mock for Repository.
Package repository_mock implements the mock for Repository.
plugins/configurepackage/packageservice/mock
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
plugins/configurepackage/ssminstaller
Package ssminstaller implements the installer for ssm packages that use documents or scripts to install and uninstall.
Package ssminstaller implements the installer for ssm packages that use documents or scripts to install and uninstall.
plugins/domainjoin
Package domainjoin implements the domain join plugin.
Package domainjoin implements the domain join plugin.
plugins/downloadcontent
Package downloadcontent implements the aws:downloadContent plugin
Package downloadcontent implements the aws:downloadContent plugin
plugins/downloadcontent/gitresource
Package gitresource implements methods and defines resources required to access git repositories
Package gitresource implements methods and defines resources required to access git repositories
plugins/downloadcontent/gitresource/github
Package github implements the methods to access resources from github
Package github implements the methods to access resources from github
plugins/downloadcontent/gitresource/github/privategithub
Package privategithub deals with all the authorization invocations to access private github
Package privategithub deals with all the authorization invocations to access private github
plugins/downloadcontent/gitresource/github/privategithub/githubclient
Package githubclient contains methods for interacting with git
Package githubclient contains methods for interacting with git
plugins/downloadcontent/gitresource/github/privategithub/githubclient/mock
Package mock_githubclient contains methods to mock githubclient package
Package mock_githubclient contains methods to mock githubclient package
plugins/downloadcontent/gitresource/privategit
Package privategit implements the methods to access resources over Git
Package privategit implements the methods to access resources over Git
plugins/downloadcontent/gitresource/privategit/handler
Package handler provides methods for accessing git repositories over SSH or HTTP(s)
Package handler provides methods for accessing git repositories over SSH or HTTP(s)
plugins/downloadcontent/gitresource/privategit/handler/core
Package core contains wrapper structs for the git package resources
Package core contains wrapper structs for the git package resources
plugins/downloadcontent/gitresource/privategit/handler/core/mock
Package mock defines the struct and its corresponding methods for mocking core.Repository
Package mock defines the struct and its corresponding methods for mocking core.Repository
plugins/downloadcontent/gitresource/privategit/handler/mock
Package mock defines the struct and its corresponding methods for mocking handler.IGitHandler
Package mock defines the struct and its corresponding methods for mocking handler.IGitHandler
plugins/downloadcontent/httpresource
Package httpresource provides methods to download resources over HTTP(s)
Package httpresource provides methods to download resources over HTTP(s)
plugins/downloadcontent/httpresource/handler
Package handler provides methods to access resources over HTTP(s)
Package handler provides methods to access resources over HTTP(s)
plugins/downloadcontent/httpresource/handler/auth/digest
Package digest defines functionality required to support digest authorization
Package digest defines functionality required to support digest authorization
plugins/downloadcontent/remoteresource
Package remoteresource is the factory for creating and developing on multiple remote resources
Package remoteresource is the factory for creating and developing on multiple remote resources
plugins/downloadcontent/remoteresource/mock
Package remoteresource_mock has mock functions for remoteresource package
Package remoteresource_mock has mock functions for remoteresource package
plugins/downloadcontent/s3resource
Package s3resource implements the methods to access resources from s3
Package s3resource implements the methods to access resources from s3
plugins/downloadcontent/ssmdocresource
Package ssmdocresource implements the methods to access resources from ssm
Package ssmdocresource implements the methods to access resources from ssm
plugins/downloadcontent/system
Package system have all the files related dependencies used by the copy package
Package system have all the files related dependencies used by the copy package
plugins/downloadcontent/types
Package types defines custom types
Package types defines custom types
plugins/inventory
Package inventory contains implementation of aws:softwareInventory plugin
Package inventory contains implementation of aws:softwareInventory plugin
plugins/inventory/datauploader
Package datauploader contains routines upload inventory data to SSM - Inventory service
Package datauploader contains routines upload inventory data to SSM - Inventory service
plugins/inventory/gatherers
Package gatherers contains routines for different types of inventory gatherers
Package gatherers contains routines for different types of inventory gatherers
plugins/inventory/gatherers/application
Package application contains a application gatherer.
Package application contains a application gatherer.
plugins/inventory/gatherers/awscomponent
Package awscomponent contains a aws component gatherer.
Package awscomponent contains a aws component gatherer.
plugins/inventory/gatherers/billinginfo
Package billinginfo contains a billinginfo gatherer.
Package billinginfo contains a billinginfo gatherer.
plugins/inventory/gatherers/custom
Package custom contains a gatherer for collecting custom inventory items
Package custom contains a gatherer for collecting custom inventory items
plugins/inventory/gatherers/file
Package file contains file gatherer.
Package file contains file gatherer.
plugins/inventory/gatherers/instancedetailedinformation
Package instancedetailedinformation contains a gatherer for the AWS:InstanceDetailedInformation inventory type.
Package instancedetailedinformation contains a gatherer for the AWS:InstanceDetailedInformation inventory type.
plugins/inventory/gatherers/network
Package network contains a network gatherer.
Package network contains a network gatherer.
plugins/inventory/gatherers/registry
Package registry collects information about windows registry
Package registry collects information about windows registry
plugins/inventory/gatherers/role
Package role contains a role gatherer.
Package role contains a role gatherer.
plugins/inventory/gatherers/service
Package service contains a service gatherer.
Package service contains a service gatherer.
plugins/inventory/mocks/datauploader
Package datauploader contains routines upload inventory data to SSM - Inventory service
Package datauploader contains routines upload inventory data to SSM - Inventory service
plugins/inventory/mocks/gatherers
Package gatherers contains routines for different types of inventory gatherers
Package gatherers contains routines for different types of inventory gatherers
plugins/inventory/model
Package model contains contracts for inventory
Package model contains contracts for inventory
plugins/lrpminvoker
Package lrpminvoker contains implementation of lrpm-invoker plugin.
Package lrpminvoker contains implementation of lrpm-invoker plugin.
plugins/pluginutil
Package pluginutil implements some common functions shared by multiple plugins.
Package pluginutil implements some common functions shared by multiple plugins.
plugins/refreshassociation
Package refreshassociation implements the refreshassociation plugin.
Package refreshassociation implements the refreshassociation plugin.
plugins/rundocument
Package rundocument implements the aws:runDocument plugin
Package rundocument implements the aws:runDocument plugin
plugins/rundocument/mocks/rundocument
Package rundocument implements the aws:runDocument plugin
Package rundocument implements the aws:runDocument plugin
plugins/runscript
Package runscript implements the RunScript plugin.
Package runscript implements the RunScript plugin.
plugins/updateec2config
Package updateec2config implements the UpdateEC2Config plugin.
Package updateec2config implements the UpdateEC2Config plugin.
plugins/updatessmagent
Package updatessmagent implements the UpdateSsmAgent plugin.
Package updatessmagent implements the UpdateSsmAgent plugin.
proxyconfig
Package proxy config to handle set/get proxy settings
Package proxy config to handle set/get proxy settings
rebooter
Package rebooter provides utilities used to reboot a machine.
Package rebooter provides utilities used to reboot a machine.
runcommand
Package runcommand implements runcommand core processing module
Package runcommand implements runcommand core processing module
runcommand/contracts
Package model contains message struct for MDS/SSM messages.
Package model contains message struct for MDS/SSM messages.
runcommand/mds
Package service is a wrapper for the SSM Message Delivery Service and Offline Command Service
Package service is a wrapper for the SSM Message Delivery Service and Offline Command Service
s3util
Package s3util contains methods for interacting with S3.
Package s3util contains methods for interacting with S3.
sdkutil
Package sdkutil provides utilities used to call awssdk.
Package sdkutil provides utilities used to call awssdk.
sdkutil/retryer
Package retryer overrides the default aws sdk retryer delay logic to better suit the mds needs
Package retryer overrides the default aws sdk retryer delay logic to better suit the mds needs
session/communicator
communicator package implement base communicator for network connections.
communicator package implement base communicator for network connections.
session/communicator/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
session/communicator/websocketutil
Package websocketutil contains methods for interacting with websocket connections.
Package websocketutil contains methods for interacting with websocket connections.
session/config
config package implement configuration retrieval for the session package.
config package implement configuration retrieval for the session package.
session/contracts
Package contracts defines all channel messages structure.
Package contracts defines all channel messages structure.
session/controlchannel
Package controlchannel implement control communicator for web socket connection.
Package controlchannel implement control communicator for web socket connection.
session/crypto
crypto package provides methods to encrypt and decrypt data
crypto package provides methods to encrypt and decrypt data
session/crypto/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
session/datachannel
Package datachannel implements data channel which is used to interactively run commands.
Package datachannel implements data channel which is used to interactively run commands.
session/datachannel/mocks
Code generated by mockery 2.7.4.
Code generated by mockery 2.7.4.
session/logging
Package logging reads byte data from the log file and prints it on the console.
Package logging reads byte data from the log file and prints it on the console.
session/logging/console
Package console contains platform specific configurations to enable logging.
Package console contains platform specific configurations to enable logging.
session/mocks
Package shell is a common library that implements session manager shell.
Package shell is a common library that implements session manager shell.
session/plugins/interactivecommands
Package interactivecommands implements session shell plugin with interactive commands.
Package interactivecommands implements session shell plugin with interactive commands.
session/plugins/noninteractivecommands
Package noninteractivecommands implements session shell sessionPlugin with non-interactive command execution.
Package noninteractivecommands implements session shell sessionPlugin with non-interactive command execution.
session/plugins/port
Package port implements session manager's port plugin
Package port implements session manager's port plugin
session/plugins/port/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
session/plugins/sessionplugin
Package sessionplugin implements functionality common to all session manager plugins
Package sessionplugin implements functionality common to all session manager plugins
session/plugins/sessionplugin/mocks
Code generated by mockery 2.7.4.
Code generated by mockery 2.7.4.
session/plugins/singlecommand
Package singlecommand implements session shell plugin with interactive or non-interactive single command.
Package singlecommand implements session shell plugin with interactive or non-interactive single command.
session/plugins/standardstream
Package standardstream implements session standard stream plugin.
Package standardstream implements session standard stream plugin.
session/retry
Package retry implements back off retry strategy for session manager channel connection.
Package retry implements back off retry strategy for session manager channel connection.
session/service
Package service is a wrapper for the message gateway Service
Package service is a wrapper for the message gateway Service
session/service/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
session/shell
Package shell is a common library that implements session manager shell.
Package shell is a common library that implements session manager shell.
session/shell/constants
Package constants manages the configuration of the session shell.
Package constants manages the configuration of the session shell.
session/shell/execcmd
Package execcmd wraps up the os.Process interface.
Package execcmd wraps up the os.Process interface.
session/telemetry
Package telemetry is used to schedule and send the audit logs to MGS
Package telemetry is used to schedule and send the audit logs to MGS
session/utility
utility package implements all the shared methods between clients.
utility package implements all the shared methods between clients.
session/utility/model
Package model contains data objects for session utility
Package model contains data objects for session utility
session/winpty
winpty package is wrapper package for calling procedures of winpty.dll
winpty package is wrapper package for calling procedures of winpty.dll
setupcli
Package main represents the entry point of the ssm agent setup manager.
Package main represents the entry point of the ssm agent setup manager.
setupcli/managers/common
Package common contains common constants and functions needed to be accessed across ssm-setup-cli
Package common contains common constants and functions needed to be accessed across ssm-setup-cli
setupcli/managers/common/mocks
Package mocks contains mocks for IManagerHelper type
Package mocks contains mocks for IManagerHelper type
setupcli/managers/configurationmanager
Package configurationmanager helps us to handle agent config in ssm-setup-cli
Package configurationmanager helps us to handle agent config in ssm-setup-cli
setupcli/managers/configurationmanager/mocks
Code generated by mockery v2.9.4.
Code generated by mockery v2.9.4.
setupcli/managers/downloadmanager
Package downloadmanager helps us with file download related functions in ssm-setup-cli
Package downloadmanager helps us with file download related functions in ssm-setup-cli
setupcli/managers/helpers
Package helpers contains helper functions for SSM-Setup-CLI
Package helpers contains helper functions for SSM-Setup-CLI
setupcli/managers/packagemanagers
Package packagemanagers holds functions querying using local package manager
Package packagemanagers holds functions querying using local package manager
setupcli/managers/registermanager
Package registermanager contains functions related to register
Package registermanager contains functions related to register
setupcli/managers/servicemanagers
Package servicemanagers contains functions related to service manager
Package servicemanagers contains functions related to service manager
setupcli/managers/verificationmanagers
Package verificationmanagers is used to verify the agent packages
Package verificationmanagers is used to verify the agent packages
ssm
ssm/anonauth
Package anonauth is an interface to the anonymous methods of the SSM service.
Package anonauth is an interface to the anonymous methods of the SSM service.
ssm/authregister
Package authregister is an interface to the anonymous methods of the SSM service.
Package authregister is an interface to the anonymous methods of the SSM service.
ssm/rsaauth
Package rsaauth is an interface to the RSA signed methods of the SSM service.
Package rsaauth is an interface to the RSA signed methods of the SSM service.
ssm/ssmparameterresolver
Package ssmparameterresolver provides helper methods to detect, validate and extract parameter store parameter references.
Package ssmparameterresolver provides helper methods to detect, validate and extract parameter store parameter references.
ssm/util
Package util contains helper function common for ssm service
Package util contains helper function common for ssm service
ssmconnectionchannel
Package ssmconnectionchannel contains logic for tracking the Agent's primary upstream connection channel and its various states.
Package ssmconnectionchannel contains logic for tracking the Agent's primary upstream connection channel and its various states.
startup
Package startup implements startup plugin processor
Package startup implements startup plugin processor
startup/model
Package model provides model definition for startup processor
Package model provides model definition for startup processor
startup/serialport
Package serialport implements serial port capabilities
Package serialport implements serial port capabilities
startup/util
This package is for project's utilities
This package is for project's utilities
startup/util/interop
Package interop provides structures and functions for syscall's data structure marshalling.
Package interop provides structures and functions for syscall's data structure marshalling.
task
Package task contains a default implementation of the interfaces in the task package.
Package task contains a default implementation of the interfaces in the task package.
times
Package times provides a set of utilities related to processing time.
Package times provides a set of utilities related to processing time.
update/processor
Package processor contains the methods for update ssm agent.
Package processor contains the methods for update ssm agent.
update/tester
Package tester is responsible for initiating testing based on the test stage value passed
Package tester is responsible for initiating testing based on the test stage value passed
update/tester/common
Package common contains common methods, interfaces and variables used across the tester packages
Package common contains common methods, interfaces and variables used across the tester packages
update/tester/testcases
Package testcases contains test cases from all testStages
Package testcases contains test cases from all testStages
update/updater
Package main represents the entry point of the ssm agent updater.
Package main represents the entry point of the ssm agent updater.
updateutil
Package updateutil contains updater specific utilities.
Package updateutil contains updater specific utilities.
updateutil/updateconstants
Package updateconstants contains constants related to update
Package updateconstants contains constants related to update
updateutil/updatemanifest
Package updatemanifest implements the logic for the ssm agent s3 manifest.
Package updatemanifest implements the logic for the ssm agent s3 manifest.
updateutil/updates3util
Package updates3util implements the logic for s3 update download
Package updates3util implements the logic for s3 update download
version
Package version contains constants to indicate the current version of the agent.
Package version contains constants to indicate the current version of the agent.
common
channel
Package channel captures IPC implementation.
Package channel captures IPC implementation.
channel/protocol
Package protocol implements some common communication protocols using file watcher.
Package protocol implements some common communication protocols using file watcher.
channel/utils
Package utils implements some common functionalities for channel
Package utils implements some common functionalities for channel
filewatcherbasedipc
package filewatcherbasedipc is used to establish IPC between master and workers using files.
package filewatcherbasedipc is used to establish IPC between master and workers using files.
identity/availableidentities/ec2/ec2detector
Package ec2detector implements the detection of EC2 using specific sub-detectors
Package ec2detector implements the detection of EC2 using specific sub-detectors
identity/availableidentities/ec2/ec2detector/nitrodetector
Package nitrodetector implements logic to determine if we are running on an nitro hypervisor
Package nitrodetector implements logic to determine if we are running on an nitro hypervisor
identity/availableidentities/ec2/ec2detector/xendetector
Package xendetector implements logic to determine if we are running on an amazon Xen hypervisor
Package xendetector implements logic to determine if we are running on an amazon Xen hypervisor
identity/credentialproviders/onpremprovider
package onprem contains functions that help procure the managed instance auth credentials dependencies
package onprem contains functions that help procure the managed instance auth credentials dependencies
message
Package message contains information for the IPC messages.
Package message contains information for the IPC messages.
Package main represents the entry point of the agent.
Package main represents the entry point of the agent.
app
Package app represents the core SSM agent object
Package app represents the core SSM agent object
app/bootstrap
bootstrap package contains logic for agent initialization
bootstrap package contains logic for agent initialization
app/context
Package context contains context details needed by the app to execute
Package context contains context details needed by the app to execute
app/reboot/model
Package model contains constants value for reboot
Package model contains constants value for reboot
app/selfupdate/fileutil
Package fileutil contains utilities for working with the file system.
Package fileutil contains utilities for working with the file system.
app/selfupdate/fileutil/artifact
Package artifact contains utilities for working downloading files.
Package artifact contains utilities for working downloading files.
executor
Package executor contains general purpose command executing objects.
Package executor contains general purpose command executing objects.
ipc/messagebus
Package messagebus logic to send message and get reply over IPC
Package messagebus logic to send message and get reply over IPC
workerprovider/longrunningprovider
Package longrunningprovider provides an interface to start/stop a worker process for long-running tasks.
Package longrunningprovider provides an interface to start/stop a worker process for long-running tasks.
workerprovider/longrunningprovider/datastore
Package datastore provides interface to read and write json data from/to disk
Package datastore provides interface to read and write json data from/to disk
workerprovider/longrunningprovider/datastore/filesystem
Package filesystem contains related functions from os, io, and io/ioutil packages
Package filesystem contains related functions from os, io, and io/ioutil packages
workerprovider/longrunningprovider/discover
Package discover finds worker configs for the core agent.
Package discover finds worker configs for the core agent.
workerprovider/longrunningprovider/model
Package model contains data objects for long running container
Package model contains data objects for long running container
workerprovider/longrunningprovider/provider
Package provider implements logic for allowing interaction with worker processes
Package provider implements logic for allowing interaction with worker processes
internal
tests/testutils
Package testutils represents the common logic needed for agent tests
Package testutils represents the common logic needed for agent tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL