I'm using microsoft TFS and I want to make continuous deployment on AWS using CircleCI.. Is that possible? if not, what should I exactly do?
Afraid not, CircleCI is just a continuous integration tools which TFS could also do the CI and include some useful task easily enable build and release pipelines.
You could use AWS Tools for Microsoft Visual Studio Team Services.
This tool include a new service endpoint type, AWS, to supply AWS credentials to the tasks at runtime.
It will create an AWS Credentials Connection. Select the AWS endpoint type and provide the following parameters:
A name used to refer to the credentials when configuring tasks that
require AWS credentials
AWS Access Key ID
AWS Secret Access Key
After an AWS subscription has be linked to Team Foundation Server, you could use the task deploy to Amazon EC2 with AWS CodeDeploy.
Note: Minimum supported environments
Visual Studio Team Services
Team Foundation Server 2015 Update 3 (or higher)
Related
Sorry, I’m sort of a newbie when it comes to Amazon AWS Cloud so sorry if I sound naïve.
For .NET developers, I’ve used Visual Studio 2019’s AWS Lambda project to code Lambda functions and ultimately deploy it to Amazon AWS cloud
However, my concern is that there is No way to version and/or back up the Configurations for the AWS Services ( i.e., S3 bucket, Amazon SNS & SQS, etc.) that are invoked and/or trigger the various AWS Lambda Functions
The problem is that IT developers who configure said AWS Services have to use the ADFS AWS Services console website’s GUI to configure the various AWS Services, and if someone mistakenly deletes an AWS Services then they lose the configuration settings as well?
How do we go about versioning and/or backing up Configurations for the AWS Services?
There are Infrastructure as a Code frameworks like Terraform and Ansible designed to address that.
You can't really delete an AWS service.
it seems like you guys are kind of "new" to AWS so I will recommend using CloudFormation templates as Infrastructure As Code tool. All the configuration of how your AWS resources are supposed to look like can be added to the template and you deploy the template to create your AWS resources. Its AWS-Native and does not cost you anything.
On top of it, you also want to add your CloudFormation templates to version control system.
I have a repository in a [company hosted] GitHub enterprise site that I need to integrate within a CI/CD pipeline in AWS using the CodePipeline service. The CodePipeline service then will connect with a Jenkins Service running in an EC2 instance. I am following this AWS documentation to do this.
Note that this is an enterprise GitHub repo and not hosted on GitHub.com.
I am unable to connect to the GitHub Enterprise site in the "Create a pipeline" wizard. Selecting GitHub as a source only lets me connect to GitHub.com, and not to my organization's enterprise site.
How do I connect to the enterprise GitHub site so that I can add the repo as a source for my codepipeline?
UPDATE: An integration was finally released for github enterprise to work with AWS Codepipeline. Please see this answer by Pedreiro
As Sid Malani said in the comments, there's no straightforward or direct way to use a privately hosted GitHub Enterprise Repository in AWS CodePipeline.
One way would be to use CodeBuild, which allows to add custom github repositories which can then be used in CodePipeline. This, however, should only be considered as a stop-gap solution.
Thank you Sid Malani for the alternative strategy
I doubt AWS will ship this feature anytime soon (hopefully I eat my words) since the workaround is well-documented and works fine. The gist of it can be found here, which I'll summarize as follows:
Create a CodeBuild project (which can take GitHub Enterprise as a source) which essentially just listens to a push event (webhook) of your development or master branch and outputs a .zip file of the source-code into an S3 bucket.
Use the S3 bucket as the source of your CodePipeline.
The official integration was finally released.
https://aws.amazon.com/about-aws/whats-new/2020/09/aws-codepipeline-supports-github-enterprise-server
Here is the documentation:
https://docs.aws.amazon.com/codepipeline/latest/userguide/connections-ghes.html
There is a way to integrate 3rd party Git repos with AWS CodePipeline. AWS suggested the following process. It used S3 buckets and API Gateways and Lambdas to connected Github enterprise repos to CodePipeline. It's not ideal but it can work.
Unofficial: I've heard CodePipeline support for Github Enterprise will be out second half of 2019.
both of them are used to authorize from company network to use AWS resource. I do not know what is the difference btw them.
AWS Directory Service for Microsoft Active Directory (Enterprise Edition), also known as AWS Microsoft AD, enables your directory-aware workloads and AWS resources to use managed Active Directory in the AWS Cloud. The Microsoft AD service is built on actual Microsoft Active Directory and does not require you to synchronize or replicate data from your existing Active Directory to the cloud.
see https://aws.amazon.com/directoryservice/
whereas STS:
The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users).
see http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html
The AWS Directory Service is a full AD implementation which can "join" your in house servers. This would work better if there is a VPN and/or AWS Direct Connect in place. So replication occurs just as it would if you set up another Microsoft AD server
STS for linking your on premise accounts to AWS has some kind of shim software that is custom, running on premise. In the case you are asking about the local on premise environment has AD. The custom software deals with authentication against a local AD, then negotiates temporary creditials with the AWS account. AWS do custom software for this use case see https://aws.amazon.com/blogs/security/how-to-connect-your-on-premises-active-directory-to-aws-using-ad-connector/
So the difference between them is
AWS Directory Service sets up a new server on the cloud. This has to be linked to your on premise equipment to get it to work. It works better with a good link between on premise and AWS. Could be a better fit if your are running Microsoft stack on AWS
STS in this use case requires installing software on your on premise systems. There is also configuration to the AWS account
I have a website on elastic beanstalk that I currently use the AWS toolkit to deploy to. I have a new tfs server that I'm getting CI set up on. How can I have a bean stalk deploy launch out of TFS as a build step?
AWS provide an extension to Visual Studio to make interacting with your AWS services easy, including deploying to a Beanstalk environment, which is the recommended way of deploying to a Beanstalk.
The AWS Toolkit for Visual Studio includes a deployment tool, a command line tool that provides the same functionality as the deployment wizard in the AWS Toolkit. You can use the deployment tool in your build pipeline or in other scripts to automate deployments to Elastic Beanstalk.
So just use AWSDeploy.exe --the command line deployment tool which you can wire up to TFS. Another way is using AWS Tools for Windows PowerShell lets developers and administrators manage their AWS services from the Windows PowerShell scripting environment.
Here is a tutorial on how to achieve this.
How to Integrate AWS Elastic Beanstalk with Microsoft Team Foundation Server (TFS) or (VSTS)(for IIS websites/batch jobs you can use this)
https://www.youtube.com/watch?v=nRLZZefLDqU
I am having difficulty deploying a basic Azure WebJob from Visual Studio. The deployment will successfully create the web app, app service plan and resource group. However, it fails to deploy the webjob. I receive the error message below:
Following errors occurred during the deploymnent:
Error during deployment for resource 'resourcename' in resource group 'ResourceGroup':
MissingRegistrationForLocation: The subscription is not registered for the resource type 'components' in the location 'Central US'. Please re-register for this provider in order to have access to this location.
I've tried multiple subscriptions, resource groups and app service plans in different regions and continue to receive the same error. Please help.
Deploy the Azure WebJob in the ‘Central US’, it works for me correctly with Visual Studio 2015 Azure .Net SDK 2.9.5.
The errors seems like another SO Thread, it may be caused by old version of Azure SDK. If it is that case, please have a try to use the latest Azure SDK.
And we can follow the document to deploy WebJob with Visual Studio. If we deployed with Azure Resource Manager, some
troubleshoot common Azure deployment errors with Azure Resource Manager please refer to document.