質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

2回答

4807閲覧

Gitlabのプライベートリポジトリから直接ファイルをダウンロードしたい

dtdt

総合スコア1

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2020/11/10 04:24

編集2020/11/10 04:36

前提・実現したいこと

Gitlabのプライベートリポジトリからファイルをダウンロードしたいです。
コマンドの動確ができ次第Ansible Playbook内に処理を取り込む予定です。

そもそもやりたいこととしてpythonスクリプトを実行するAnsible Playbookで
Playbook実行のたびにGitlab内の最新バージョンのpythonスクリプトを取得して実行したいためにwgetやcurlでとってこれないか検討しております。

試したこと

https://blog.freedom-man.com/gitlab-filedownload

上記URLを参考に以下のcurlコマンドとwgetコマンドを実行しました。

curl https://<サーバURL>/<プロジェクト名>/<リポジトリ名>/-/raw/master/<スクリプト名>?private_token=<プライベートトークン番号> wget https://<サーバURL>/<プロジェクト名>/<リポジトリ名>/-/raw/master/<スクリプト名>?private_token=<プライベートトークン番号> --no-check-certificate

問題点

上記コマンドを試してもGitlabのログイン画面がhtmlファイルとしてダウンロードされます。

補足

プロジェクトの権限はprivateです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

git module を使うのはどうでしょう。

https://docs.ansible.com/ansible/2.9/modules/git_module.html

投稿2020/11/10 04:55

SugiTK

総合スコア495

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiTK

2020/11/11 04:37

git module では1つのファイルだけを取ってくるというのはできないので、この方法は向かなかったです。
dtdt

2020/11/13 00:25

モジュールの存在をご提示いただきありがとうございます! gitのモジュールがあることを知らなかったので、今後機会があったら利用してみようと思います。
guest

0

ベストアンサー

お使いになられているGitlabのバージョンは不明ですが、最新版のマニュアルではtokenはHeaderにセットしていますので、その辺を確認されてはいかがでしょうか?
https://gitlab-docs.creationline.com/ee/api/repositories.html

ちなみにcurlはuriモジュールで代用できます。
冪等性も担保してくれるのでおすすめです。
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/uri_module.html

投稿2020/11/10 04:50

comefigo

総合スコア1045

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dtdt

2020/11/10 06:50 編集

早速のご返答ありがとうございます! とりあえずcurlでscriptの取得はできました! curl --header "PRIVATE-TOKEN: xxxxxx" "<サーバURL>/api/v4/projects/<プロジェクトid>/repository/blobs/<ファイルid>/raw" -k -o <保存ファイル名> 次にご教示いただいたuriモジュールで実装に挑戦しているのですが、エラーが出てしまいました。 こちら不足しているオプションなどエラー原因に心当たりなどございますでしょうか? ``` - name: download script uri: url: <サーバURL>/api/v4/projects/<プロジェクトid>/repository/blobs/<ファイルid>/raw validate_certs: no method: GET headers: private_token: xxxxx return_content: yes ``` ``` エラーメッセージ抜粋 "message": "404 Project Not Found"}, "msg": "Status code was 404 and not [200]: HTTP Error 404: Not Found" ```
comefigo

2020/11/10 07:23

上記のheaders: private_tokenは記載ミスでしょうか? PRIVATE-TOKENでいかがでしょうか?
dtdt

2020/11/11 02:52

ご指摘の通り、headersの記載ミスでした。 修正したところ無事ダウンロードできました。ありがとうございます!
comefigo

2020/11/11 02:58

無事解決できて、よかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問