`

Amazon EC2+Jenkins+Github构建自己的CI服务器

 
阅读更多
    最近在做一个公司内部项目的时候,想搭建一个CI服务器,第一个想到的就是Jenkins,但是因为内部项目,在资源方面不想有更多的消耗,同时也想试玩一下当下正火的“云”概念,于是大家决定把CI服务器放到Amazon的EC2上。
(1)、注册AWS账号,启动EC2实例
    Amazon为每个新用户提供了一个Free Tier Usage的政策,具体政策如下
Free Tier*

As part of AWS’s Free Usage Tier, new AWS customers can get started with Amazon EC2 for free. Upon sign-up, new AWS customers receive the following EC2 services each month for one year:

750 hours of EC2 running Linux/Unix Micro instance usage
750 hours of EC2 running Microsoft Windows Server Micro instance usage
750 hours of Elastic Load Balancing plus 15 GB data processing
30 GB of Amazon Elastic Block Storage (EBS) plus 2 million IOs and 1 GB snapshot storage
15 GB of bandwidth out aggregated across all AWS services
1 GB of Regional Data Transfer
对于我这样的试玩者完全够用,基本上就是免费使用AWS的服务。创建AWS的账户会经历四个步骤,提供个人准确信息;绑定信用卡用做付费,而且会扣除1美元以作验证之用,会退还的,但是要注意你的信用卡的一些政策,避免出现不必要的纠纷;验证用户提供的手机号的正确性;通过你注册邮箱的确认信登陆AWS网站完成注册。别人的一个不错的总结:http://www.bityun.com/archives/42

    创建一个EC2的instance, 登陆到AWS后,可以使用AWS的management console来管理整个Amazon的服务,在这一步骤中,我创建了一个Ubuntu镜像的实例。整个创建流程可以参考这篇文章http://www.bityun.com/archives/70 。

    登录到EC2服务器,在创建EC2 instance的时候,会得到一个密钥pem文件,创建好instance的时候,会有一个Public DNS的信息,这2个就是SSH到EC2实例的全部信息,在Mac/Linux系统下,可以直接通过 登陆到EC2上,如果报无法打开pem文件的问题,是因为当前用户权限问题,可以使用sudo执行解决。在Windows系统下,需要通过软件实现SSH登陆,但是有些软件不支持pem文件,因此需要做一些转换,像putty就需要puttygen把pem文件转换成putty识别的密钥。另外,很
ssh -i <pem文件> username@Public_DNS
多文章都说ec2的默认用户名是ec2-user,这不是绝对的,不同的AMI创建的实例默认用户名不同,比方说这儿创建的ubuntu实例默认的用户名为ubuntu。

(2)安装Jenkins
    参考:http://pkg.jenkins-ci.org/debian/;注意,这种安装方式默认会安装OpenJDK的运行库。如果你想使用其他版本的JDK,在安装完成后,可以登陆到jenkins的管理界面Manage Jenkins>config system中找到JDK一栏进行修改。

(3)Github和Jenkins集成
    假设已经有一个github的repository,如何把它和jenkins关联起来? 首先,需要给jenkins安装Git和GitHub的插件(Manage Jenkins>manage plugins),同时需要在Jenkins的管理界面Manage Jenkins>config system 中配置上Git和GitHub的账号;为了能使用Maven构建项目,需要配置上Maven的环境;为了能在每次CI构建报错的时候能够通知用户,还需要配置上Email Notification;安装完之后,重启jenkins。
     接下来,使用jenkins new job新起一个maven项目,在项目的configure目录下,配置source code management,把Git的repository地址配置上,同时可以配置Email Notification,出发Build的条件 以及pre-build,build,post-build等各个构建阶段需要做的事。
    
分享到:
评论

相关推荐

    SpringBoot_Jenkins:SpringBoot,Github,Jenkins,CodeDeploy,S3,EC2로CICD

    【标题】"SpringBoot_Jenkins:SpringBoot,Github,Jenkins,CodeDeploy,S3,EC2로CICD" 涉及的关键技术是持续集成与部署(CI/CD)流程,它在现代软件开发中起着至关重要的作用。这个项目通过一系列工具将Java的...

    Project_Pet_Clinic:该项目旨在使用Spring Petclinic微服务应用程序为基于微服务的应用程序创建完整的CICD管道。 部署在Elastic Compute Cloud(EC2)实例上的Jenkins Server用作CICD Server来构建管道

    部署在弹性计算云(EC2)实例上的Jenkins服务器用作CI / CD服务器来构建管道。 DevOps管道 发展图 管道配置 项目实现的任务流程 史诗 任务 任务 # 任务定义 分支 当地发展环境 在EC2实例上手动准备Development ...

    serverMovies:简单的快速服务器,可在AWS EC2上进行实践部署

    6. **持续集成/持续部署(CI/CD)**:为了实现自动化部署,可以集成Jenkins、GitHub Actions或Travis CI等工具。这使得每次代码提交都能自动触发构建、测试和部署流程,保证了代码的质量和稳定性。 7. **监控与日志**...

    sentry-test:通过GitHub操作测试错误跟踪软件Sentry和自动化ec2部署

    在这个项目中,我们可能看到使用工具如Jenkins、GitLab CI/CD或者AWS CodePipeline来自动化构建、测试和部署Kotlin应用到EC2实例。这通常包括配置基础设施即代码(IaC)文件,如CloudFormation模板或Terraform配置,...

    github-aws-cicd

    【标题】:“GitHub-AWS-CICD”是一个关于利用GitHub与AWS进行持续集成与持续部署(CI/CD)的项目。 【描述】:这个项目旨在展示如何将GitHub作为代码仓库,与Amazon Web Services (AWS) 的服务如CodePipeline、...

    cga-web-ec2

    3. 部署自动化,可能通过CI/CD工具如Jenkins、GitHub Actions或AWS CodePipeline实现。 4. 数据库服务,如Amazon RDS或Amazon DynamoDB,存储应用数据。 5. 监控和日志管理,如AWS CloudWatch,追踪应用性能和错误。...

    Terraform-EKS-Jenkins

    【Terraform-EKS-Jenkins】是一个用于自动化部署EKS(Amazon Elastic Kubernetes Service)集群并集成Jenkins持续集成/持续部署(CI/CD)工具的项目。Terraform是一种基础设施即代码(IaC)工具,它允许我们用HCL...

    Spot_Push_Quick_Release

    在实际应用中,这可能涉及到使用CI/CD工具(如Jenkins、GitLab CI/CD或GitHub Actions),配合Docker容器化技术,以及AWS SDK或CLI工具来管理Spot实例生命周期。此外,元数据管理和Java代码组织结构也遵循了标准的...

    AWS詹金斯测试

    在IT行业中,AWS(Amazon Web Services)和Jenkins是两个非常关键的工具,它们在持续集成和持续部署(CI/CD)流程中扮演着重要角色。AWS是全球领先的云服务提供商,提供各种基础设施即服务(IaaS)、平台即服务...

    Python库 | aws_cdk.aws_imagebuilder-1.95.0-py3-none-any.whl

    - **CI/CD集成**: 结合Jenkins、GitHub Actions或其他CI/CD工具,可以自动化触发Image Builder的构建流程,确保每次代码更新都能快速地生成新的镜像。 - **安全与合规**: AWS Image Builder支持定义安全策略和合规性...

    Laravel开发-laravel-aws-deploy

    4. **代码版本控制**:使用Git或其他版本控制系统将Laravel应用的代码部署到EC2实例,并配置持续集成/持续部署(CI/CD)流程,如Jenkins或GitHub Actions。 5. **自动缩放策略**:定义自动缩放组,设置最小和最大...

    dynInvViewer

    10. **持续集成/持续部署(CI/CD)**:对于这样的项目,开发者可能使用 CI/CD 工具(如 Jenkins、GitHub Actions 或 CircleCI)来自动化测试和部署过程。 总的来说,"dynInvViewer" 是一个利用 AWS CLI、Python 和 ...

    Python库 | moto-1.3.16.dev146-py2.py3-none-any.whl

    对于开发团队来说,moto的另一个优点是它支持持续集成(CI)系统,如Jenkins、Travis CI或GitHub Actions。这意味着即使在CI环境中,也可以安全地进行测试,而不用担心触发真实AWS服务的成本。 此外,moto库还允许与...

    CPSIncBackend:Creative Protein Solutions后端服务器

    同时,持续集成/持续部署(CI/CD)工具如Jenkins、Travis CI或GitHub Actions可以自动化构建、测试和部署过程。 总结来说,"CPSIncBackend"是一个基于JavaScript的后端服务器系统,可能使用Node.js和相关框架构建,...

    packer-plugin-amazon:适用于Amazon Web Services的Packer插件

    在实际应用中,Packer-plugin-amazon通常结合持续集成/持续部署(CI/CD)系统使用,如Jenkins、Travis CI或GitHub Actions。当代码库发生变化时,CI/CD系统会自动触发Packer构建新的AMIs,确保开发、测试和生产环境的...

    服务器部署实践

    7. **持续集成/持续部署(CI/CD)**:集成Jenkins、Travis CI、CircleCI或GitHub Actions等工具实现代码提交自动触发测试和部署,确保每次更新的质量。 8. **日志管理和监控**:使用Logstash、Elasticsearch、Kibana...

    PyPI 官网下载 | boto3-1.6.8.tar.gz

    10. **持续集成/持续部署(CI/CD)**:Boto3在自动化测试和部署流程中也扮演着重要角色,如在CI/CD工具如Jenkins、Travis CI或GitHub Actions中配置AWS资源。 通过理解和使用Boto3,Python开发者能够无缝集成AWS服务...

    艺术导论课程教学大纲(质量标准)共2页.pdf.zip

    10. **持续集成/持续部署(CI/CD)**:使用如Jenkins、GitHub Actions或CircleCI等工具实现自动化测试和部署,提高效率和产品质量。 但请注意,以上内容都是基于对"赚钱项目"可能的IT关联性的一般性推测,具体的知识...

    aws-cicd-pipeline

    7. **Jenkins 或 GitHub Actions**: 虽然AWS提供了完整的CI/CD解决方案,但有时开发者可能会选择Jenkins或GitHub Actions等第三方工具来构建自定义的流水线。这些工具同样支持HCL语言,可以与AWS服务集成,实现类似...

    devops-homework13:通过Amazon部署Java服务

    - **持续集成**:集成工具如Jenkins或GitHub Actions,每当代码有变更时自动构建和测试应用。 - **自动化测试**:编写单元测试和集成测试,确保每次构建的质量。 - **持续部署**:通过CI/CD工具,当测试通过后...

Global site tag (gtag.js) - Google Analytics