使用AWS Systems Manager来执行Ansible来构建CI/CD(第二步:准备CodeCommit)

首先

上次我们尝试使用Systems Manager的RunCommand功能来执行Ansible。

我打算使用CodeCommit来创建和上传存储Ansible Playbook等的Git仓库。

    • 【前】AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その1:Systems ManagerからのAnsible実行)

【次】AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その3:SNS、Chatbotの準備)

CodeCommit指的是

CodeCommit是AWS提供的Git仓库,可与其他AWS服务轻松集成的服务。

创建CodeCommit

在中国,可以通过管理控制台中的「AWS CodeCommit」→「创建存储库」来轻松创建CodeCommit的Git存储库。

Monosnap_20220914_203433.png

只需给存储库命名为合适的名称,然后点击“创建”即可完成。

Monosnap_20220914_203515.png

使用CodeCommit之前的准备工作

由于存储库已准备就绪,我们将进行客户端的设置。

从CodeCommit获取文件的方法有很多种,但本次我们将介绍使用设置在操作终端的IAM用户来获取文件的方法。

安装Git

如果操作终端上没有安装Git,则根据每个操作系统的安装方法进行Git的下载和安装。

如果在Mac上进行安装的示例如下。

brew install git

设置凭证

如果在操作终端的~/.aws/credentials中没有注册凭据,就要记得注册。

aws configure

认证帮助设置

如果不进行以下设置,则访问CodeCommit时会被询问认证信息,因此我们将设置认证信息助手。

git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true

“I need your help.”
【参考】我需要你的帮助。

    • AWS CodeCommit 認証情報ヘルパーを使用して Windows で AWS CLI リポジトリへの HTTPS 接続をセットアップする手順

 

    • AWS CLI 認証情報ヘルパーを使用した、Linux、macOS、または UNIX での AWS CodeCommit リポジトリへの HTTPS 接続のセットアップ手順

 

    AWS CodeCommit 認証情報ヘルパーを使用して Windows で AWS CLI リポジトリへの HTTPS 接続をセットアップする手順

(仅适用于MacOS)自动删除钥匙串密码

在使用MacOS的CodeCommit时,之前还可以进行pull和push操作,突然出现403错误,并且持续发生错误的情况。

连接CodeCommit时使用的认证信息是一个只能使用15分钟的钥匙串,一旦过期,秘钥就无法使用,导致无法连接。

如果你从「启动台」→「其他」→「钥匙串访问」删除类似「git-codecommit.ap-northeast-1.amazonaws.com」这样的名称的密钥,你就可以再次访问了,但是每次都要手动删除很麻烦。所以,可以参考以下网站,在CodeCommit中添加定期删除认证信息的处理。

Monosnap_20220919_124042.png

– 【macOS】解决访问存储库时的403错误!尝试自动删除AWS CodeCommit的钥匙链密码

向CodeCommit推送

我已经准备好了,将其移动到合适的工作终端位置,然后使用以下命令克隆CodeCommit存储库。

只要CodeCommit仓库目前没有任何注册,即使输出”warning: You appear to have cloned an empty repository.”这样的警告,也会被忽略。

git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/[CodeCommitリポジトリ名]

将Ansible Playbook源代码注册

应该存在一个已经克隆到当前目录的目录,所以我们将在克隆的目录下注册上次使用的Ansible Playbook的源代码。

将克隆的目录下的各种源文件复制或移动到上一次的ansible_playbook目录下。

在假设ansible_playbook目录和通过Git克隆的ssm_ansible目录位于同一级目录下的情况下,请继续阐述。

cd ansible_playbook
mv * ../ssm_ansible
cd ../ssm_ansible
git add .
git commit -m "first commit"

将代码推送到CodeCommit中。

将本地存储库中提交的源代码推送到远程存储库(CodeCommit)中。

git push origin master

如果在管理控制台中显示刚才推送的文件和目录,则表示成功。

Monosnap_20220919_125947.png

结束时

这次,我们创建了 CodeCommit,并且将上次创建的 Playbook 文件进行了库注册。

我计划下次进行SNS和聊天机器人的准备,并创建通知Slack的机制。

广告
将在 10 秒后关闭
bannerAds