0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitLab のリモートリポジトリにプッシュしてみました

Last updated at Posted at 2022-01-19

概要

「GitOps」ということで、ローカルリポジトリにある Terraform定義ファイル等を GitLab に用意されたリモートリポジトリにプッシュしてみます。簡単な流れは以下となります。

  1. GitLabのプロジェクト(リモートリポジトリ)のクローン作成
  2. ローカルリポジトリからリモートリポジトリへのプッシュ

ローカル環境

  • macOS Monterey 12.1
  • Azure CLI 2.28.0
  • terraform v1.0.11
  • git 2.34.1

前提条件

  1. GitLab環境上にアカウント(Owner)が用意されていること
  2. ローカル環境に「azure cli」がインストールされていること
  3. ローカル環境に「terraform」環境が構成されていること
  4. ローカル環境に「git」がインストールされていること

事前準備

  1. GitLab で パーソナルアクセストークン を発行してみました でアクセストークンを入手していること
  2. GitLab上で新規プロジェクトを作成していること(今回は、このプロジェクト を利用します)
  3. .gitignore をサクッと作成してみましたの環境が準備できていること

GitLabのプロジェクト(リモートリポジトリ)のクローン作成

プロジェクトのURLの情報の入手

  1. GitLab へサインインし、該当プロジェクトを選択します。
  2. 新しく表示される画面の右側にある「クローン」リストボタンを押し、「HTTPSでクローン」のURLをどこかにコピーしておきます。
    image.png

ローカル環境でのクローン作成

1. ローカル環境にて gitの設定を行います。

## gitの設定
$ git config --global user.name "<GitLabに接続するユーザ名>"
$ git config --global user.email <GitLabに接続するユーザのメールアドレス>

## gitの設定内容の確認
$ git config --list

2. 「git clone」を実行します。

## クローン作成
$ git clone <該当プロジェクトのURL>
Cloning into 'basic'...
remote: HTTP Basic: Access denied
fatal: Authentication failed for '<該当プロジェクトのURL>'

## 上記エラーが帰って場合、以下のコマンドを実行
$ git config --system --unset credential.helper

## 再度クローンを作成
$ git clone <該当プロジェクトのURL>
Cloning into 'basic'...
Username for 'https://gitlab.xxxxxxxx': <GitLabに接続するユーザ名>
Password for 'https://itsuruzono@gitlab.xxxxxxxx': <上記ユーザ名のアクセストークン>
remote: Enumerating objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.

## クローン結果の確認
$ ls -l
total 0
drwxr-xr-x  3 ituru  staff   96  1 19 15:53 ./
drwxr-xr-x  4 ituru  staff  128  1 18 17:00 ../
drwxr-xr-x  4 ituru  staff  128  1 19 15:54 basic/

$ cd basic
$ ls -l
total 8
drwxr-xr-x   4 ituru  staff  128  1 19 15:54 ./
drwxr-xr-x   3 ituru  staff   96  1 19 15:53 ../
drwxr-xr-x  13 ituru  staff  416  1 19 15:54 .git/
-rw-r--r--   1 ituru  staff   50  1 19 15:54 README.md

3. 「.gitignore」の作成

## .zshrc に定義した Function をコール
$ GitIgnore
$ ls -l
drwxr-xr-x   5 ituru  staff   160  1 19 16:10 ./
drwxr-xr-x   3 ituru  staff    96  1 19 15:53 ../
drwxr-xr-x  13 ituru  staff   416  1 19 15:54 .git/
-rw-r--r--   1 ituru  staff  4327  1 19 16:10 .gitignore
-rw-r--r--   1 ituru  staff    50  1 19 15:54 README.md

ローカルリポジトリからリモートリポジトリへのプッシュ

ローカルリポジトリへのコミット

1. Terraform定義ファイルを作成します。また、内容に合わせ「README.md」を編集します。

## 作業ディレクトリでの上記実行後の構成
$ ls -l
total 24
drwxr-xr-x   6 ituru  staff   192  1 19 16:21 ./
drwxr-xr-x   3 ituru  staff    96  1 19 15:53 ../
drwxr-xr-x  13 ituru  staff   416  1 19 15:54 .git/
-rw-r--r--   1 ituru  staff  4327  1 19 16:10 .gitignore
drwxr-xr-x   8 ituru  staff   256  1 19 16:21 Base/
-rw-r--r--   1 ituru  staff   143  1 19 16:25 README.md

$ tree -a
.
├── .git
│   ├── FETCH_HEAD
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks
│   │   ├── applypatch-msg.sample
│   │   ├── commit-msg.sample
│   │   ├── fsmonitor-watchman.sample
│   │   ├── post-update.sample
│   │   ├── pre-applypatch.sample
│   │   ├── pre-commit.sample
│   │   ├── pre-merge-commit.sample
│   │   ├── pre-push.sample
│   │   ├── pre-rebase.sample
│   │   ├── pre-receive.sample
│   │   ├── prepare-commit-msg.sample
│   │   ├── push-to-checkout.sample
│   │   └── update.sample
│   ├── index
│   ├── info
│   │   └── exclude
│   ├── logs
│   │   ├── HEAD
│   │   └── refs
│   │       ├── heads
│   │       │   └── main
│   │       └── remotes
│   │           └── origin
│   │               └── HEAD
│   ├── objects
│   │   ├── info
│   │   └── pack
│   │       ├── pack-fa6ffae153cd2baabdfa742a8b2137b1c794b1e3.idx
│   │       └── pack-fa6ffae153cd2baabdfa742a8b2137b1c794b1e3.pack
│   ├── packed-refs
│   └── refs
│       ├── heads
│       │   └── main
│       ├── remotes
│       │   └── origin
│       │       └── HEAD
│       └── tags
├── .gitignore
├── Base
│   ├── .terraform
│   │   ├── providers
│   │   │   └── registry.terraform.io
│   │   │       └── hashicorp
│   │   │           └── azurerm
│   │   │               └── 2.92.0
│   │   │                   └── darwin_amd64
│   │   │                       └── terraform-provider-azurerm_v2.92.0_x5
│   │   └── terraform.tfstate
│   ├── .terraform.lock.hcl
│   ├── main.tf
│   ├── terraform.tfvars
│   ├── terraform_AzureBase.md
│   └── variables.tf
└── README.md

24 directories, 36 files

2 ローカルリポジトリへコミットします。

## 作業ディレクトリ内の変更をステージング領域に追加
$ git add -A

## ステージングされたスナップショットをローカルリポジトリに登録(コミット)
$ git commit -m "First Commit"
[main xxxxxxx] First Commit
 6 files changed, 663 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 create mode 100644 Base/.terraform.lock.hcl
 create mode 100644 Base/main.tf
 create mode 100644 Base/terraform_AzureBase.md
 create mode 100644 Base/variables.tf

3. リモートリポジトリへプッシュします。

## ローカルリポジトリからリモートリポジトリへのプッシュ
$ git push
Username for 'https://gitlab.xxxxxxxx': <GitLabに接続するユーザ名>
Password for 'https://itsuruzono@gitlab.xxxxxxxx': <上記ユーザ名のアクセストークン>
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 16 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 7.99 KiB | 7.99 MiB/s, done.
Total 9 (delta 0), reused 0 (delta 0), pack-reused 0
To https://gitlab.xxxxxxxx/terraformdeazure_01/basic.git
   21ce6e4..937fe5c  main -> main

GitLabでプッシュの結果を確認します。.gitignoreで定義されている不要ファイル・ディレクトリはなく、必要なもののみ存在を確認できます。また、 README.md ファイルも変更されています。
image.png


まとめ

これで ローカルリポジトリにある情報を リモートリポジトリである GitLab のプロジェクトへ問題なくプッシュできることを確認できました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?