使用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存储库。

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

使用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中添加定期删除认证信息的处理。

– 【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
如果在管理控制台中显示刚才推送的文件和目录,则表示成功。

结束时
这次,我们创建了 CodeCommit,并且将上次创建的 Playbook 文件进行了库注册。
我计划下次进行SNS和聊天机器人的准备,并创建通知Slack的机制。