cs:navody:object_storage:cesnet_s3:start

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
Následující verze Obě strany příští revize
cs:navody:object_storage:cesnet_s3:start [09.10.2019 12:32]
Lukáš Strnad
cs:navody:object_storage:cesnet_s3:start [27.05.2020 15:19]
Lukáš Strnad [Linux klient AWS CLI]
Řádek 2: Řádek 2:
  
  
 +==== Linux klient AWS CLI ====
 +
 +Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonu, je tedy nezbytné mít nainstalovaný **python alespoň ve verzi 3.3+**. Dle oficiální dokumentace je sice podporován i python 2.6.5+, nicméně můžete narazit na problémy s kompatibilitou s ohledem na námi provozovanou verzi Cephu.
 +
 +<note important>​Pokud provozujete CENTOS 7, pravděpodobně budete řešit problém s verzí pythonu, která je ve výchozím stavu 2.7.5. V takovém případě doporučujeme buď upgrade na CENTOS 8, kde je již implementovan python 3+, případně použít SCL (Software Collection environment).</​note>​
 +
 +===Instalace AWS CLI a jeho konfigurace===
 +Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde **<​nowiki>​--upgrade</​nowiki>​** provede upgrade všech již nainstalovaných součástí;​ **<​nowiki>​--user</​nowiki>​** použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven.
 +
 +<​code>​$ pip3.6 install awscli --upgrade --user</​code>​
 +
 +Dále provedeme upgrade na nejnovější verzi AWS CLI
 +<​code>​$ aws --version
 +aws-cli/​1.16.239 Python/​3.6.3 Linux/​3.10.0-957.27.2.el7.x86_64 botocore/​1.12.229</​code>​
 +
 +<​code>​$ pip3.6 install --upgrade --user awscli</​code>​
 +
 +<​note>​Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít [[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​install-virtualenv.html|tento návod]].</​note>​
 +
 +
 +<note tip>Pro konfiguraci AWS CLI doporučujeme použít volbu **<​nowiki>​--profile</​nowiki>​**,​ která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. Můžete však použít rovněž výchozí nastavení (bez volby **<​nowiki>​--profile</​nowiki>​**). Všechny příkazy pak budou shodné, jen nebudou obsahovat volbu **<​nowiki>​--profile</​nowiki>​** a použije se výchozí nastavení.</​note>​
 +
 +Dále provedeme konfiguraci AWS CLI. Následující přiklady využívají konfiguraci s použitím volby **<​nowiki>​--profile</​nowiki>​**.
 +
 +<​code>​$ aws configure --profile pepa_servis
 +AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE
 +AWS Secret Access Key [None]: je7MtGbClwBF/​2Zp9Utk/​h3yCo8nvbEXAMPLEKEY
 +Default region name [None]:
 +Default output format [None]: text</​code>​
 +
 +//AWS Access Key ID// - access key, který jste si vygenerovali \\
 +//Secret Access Key// - secret key, který jste si vygenerovali \\
 +//Default region name// - prefix pro servery, na které budete zasílat vaše požadavky, **Zde ponecháme nevyplněné!** \\
 +//Default output format// - výstupní formát dat (json, text, table) \\
 +
 +<note important>​Pro správnou funkčnost je nezbytné překonfigurovat **endpoint-url** na servery CESNETu. K tomu budeme potřebovat nainstalovat nástroj [[https://​github.com/​wbingli/​awscli-plugin-endpoint|awscli-plugin-endpoint]],​ viz návod níže.</​note>​
 +
 +== Instalace awscli-plugin-endpointu ==
 +Nejdříve provedeme instalaci pomocí pip.
 +<​code>​pip3.6 install awscli-plugin-endpoint --user</​code>​
 +
 +Případně můžete nainstalovat nejnovější verzi z Github repozitáře
 +<​code>​pip3.6 install git+https://​github.com/​wbingli/​awscli-plugin-endpoint.git --user</​code>​
 +
 +Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout.
 +<​code>​aws configure set plugins.endpoint awscli_plugin_endpoint</​code>​
 +
 +Následně pomocí pluginu přidáme adresu CESNET s3 endpointu.
 +<​code>​aws configure --profile pepa_servis set s3.endpoint_url https://​s3.cl1.du.cesnet.cz</​code>​
 +
 +Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže.
 +
 +<​code>​[user@distro ~]$ cat .aws/​config ​
 +
 +[profile pepa_servis]
 +output = text
 +s3 =
 +    endpoint_url = https://​s3.cl1.du.cesnet.cz
 +[plugins]
 +endpoint = awscli_plugin_endpoint
 +</​code>​
 +
 +Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety.
 +<​code>​
 +$ aws s3 --profile pepa_servis ls
 +2019-09-11 17:06:53 test-win
 +2019-09-11 14:45:45 large-files
 +2019-09-11 14:48:21 small-files
 +</​code>​
 +
 +==Ovládání AWS CLI - high-level (s3)== ​
 +**Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help**
 +
 +<​code>​$ aws s3 help</​code>​
 +
 +
 +<hidden **Práce s buckety**>​
 +<​note>​Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá a velká písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček.</​note>​
 +
 +**Výroba bucketu** \\
 +<​code>​$ aws s3 --profile pepa_servis mb s3://​test1</​code>​
 +**Vylistování bucketů** \\
 +<​code>​$ aws s3 --profile pepa_servis ls
 +2019-09-18 13:30:17 test1</​code>​
 +**Odstranění bucketu** \\
 +<​code>​aws s3 --profile pepa_servis rb s3://​test1</​code>​
 +</​hidden>​ \\
 +
 +
 +<hidden **Práce se soubory a adresáři**>​
 +**Soubory** \\
 +Upload souboru \\
 +<​code>​$ aws s3 --profile pepa_servis cp file_1.tar s3://test1
 +upload: ./​file_1.tar to s3://​test1/​file_1.tar</​code>​
 +
 +Download souboru \\
 +<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​file_1.tar downloads/
 +download: s3://​test1/​file1.tar to downloads/​file1.tar
 +</​code>​
 +
 +Smazání souboru \\
 +<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​file_1.tar ​
 +delete: s3://​test1/​file1.tar
 +</​code>​
 +
 +**Adresáře** \\
 +Upload adresáře \\
 +<​note>​Pokud uvedete na konci zdrojového adresáře lomítko "/"​ příkaz se vztahuje pouze k obsahu zdrojového adresáře. Bez lomítka se příkaz vztahuje i na adresář samotný.</​note>​
 +<​code>​$ aws s3 --profile pepa_servis cp my_dir s3://​test1/​test_dir1 --recursive</​code>​
 +
 +Download adresáře \\
 +<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​test_dir1 downloads/ --recursive</​code>​
 +
 +Smazání adresáře \\
 +<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​test_dir1 --recursive</​code>​
 +
 +**Synchronizace adresářů** \\
 +Synchronizace adresáře na úložiště pomocí s3 \\
 +<​code>​$ aws s3 --profile pepa_servis sync downloads s3://​test1/​my_sync/</​code>​
 +
 +Synchronizace adresáře z úložiště pomocí s3 na lokální PC \\
 +<​code>​$ aws s3 --profile pepa_servis sync s3://​test1/​my_sync/​ ./​restored/</​code>​
 +
 +</​hidden>​ \\
 +
 +/*
 +[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-commands.html|Amazon high-level S3]]
 +*/
 +
 +
 +==Ovládání AWS CLI - api-level (s3api)== ​
 +<​code>​$ aws s3api help</​code>​
 +
 +[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-apicommands.html|Amazon api-level S3]]
 +
 +/*
 +<​code></​code>​
 +
 +*/
 +
 +<​note>​ V případě rozhodnutí se používání S3 verzování objektů je   ​[[:​cs:​navody:​object_storage:​cesnet_s3_versioning|návod zde]].</​note>​
 ==== Linux klient s3cmd ==== ==== Linux klient s3cmd ====
  
Řádek 140: Řádek 281:
 </​hidden>​ \\ </​hidden>​ \\
  
- 
-==== Linux klient AWS CLI ==== 
- 
-Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonu, je tedy nezbytné mít nainstalovaný **python alespoň ve verzi 3.3+**. Dle oficiální dokumentace je sice podporován i python 2.6.5+, nicméně můžete narazit na problémy s kompatibilitou s ohledem na námi provozovanou verzi Cephu. 
- 
-<note important>​Pokud provozujete CENTOS 7, pravděpodobně budete řešit problém s verzí pythonu, která je ve výchozím stavu 2.7.5. V takovém případě doporučujeme buď upgrade na CENTOS 8, kde je již implementovan python 3+, případně použít SCL (Software Collection environment).</​note>​ 
- 
-===Instalace AWS CLI a jeho konfigurace=== 
-Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde **<​nowiki>​--upgrade</​nowiki>​** provede upgrade všech již nainstalovaných součástí;​ **<​nowiki>​--user</​nowiki>​** použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven. 
- 
-<​code>​$ pip3.6 install awscli --upgrade --user</​code>​ 
- 
-Dále provedeme upgrade na nejnovější verzi AWS CLI 
-<​code>​$ aws --version 
-aws-cli/​1.16.239 Python/​3.6.3 Linux/​3.10.0-957.27.2.el7.x86_64 botocore/​1.12.229</​code>​ 
- 
-<​code>​$ pip3.6 install --upgrade --user awscli</​code>​ 
- 
-<​note>​Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít [[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​install-virtualenv.html|tento návod]].</​note>​ 
- 
- 
-Dále musíme provést konfiguraci AWS CLI. Pro konfiguraci doporučujeme používat volbu **<​nowiki>​--profile</​nowiki>​**,​ která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. 
- 
-<​code>​$ aws configure --profile pepa_servis 
-AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE 
-AWS Secret Access Key [None]: je7MtGbClwBF/​2Zp9Utk/​h3yCo8nvbEXAMPLEKEY 
-Default region name [None]: 
-Default output format [None]: text</​code>​ 
- 
-//AWS Access Key ID// - access key, který jste si vygenerovali \\ 
-//Secret Access Key// - secret key, který jste si vygenerovali \\ 
-//Default region name// - prefix pro servery, na které budete zasílat vaše požadavky, **Zde ponecháme nevyplněné!** \\ 
-//Default output format// - výstupní formát dat (json, text, table) \\ 
- 
-<note important>​Pro správnou funkčnost je nezbytné překonfigurovat **endpoint-url** na servery CESNETu. K tomu budeme potřebovat nainstalovat nástroj [[https://​github.com/​wbingli/​awscli-plugin-endpoint|awscli-plugin-endpoint]],​ viz návod níže.</​note>​ 
- 
-== Instalace awscli-plugin-endpointu == 
-Nejdříve provedeme instalaci pomocí pip. 
-<​code>​pip3.6 install awscli-plugin-endpoint --user</​code>​ 
- 
-Případně můžete nainstalovat nejnovější verzi z Github repozitáře 
-<​code>​pip3.6 install git+https://​github.com/​wbingli/​awscli-plugin-endpoint.git --user</​code>​ 
- 
-Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout. 
-<​code>​aws configure set plugins.endpoint awscli_plugin_endpoint</​code>​ 
- 
-Následně pomocí pluginu přidáme adresu CESNET s3 endpointu. 
-<​code>​aws configure --profile pepa_servis set s3.endpoint_url https://​s3.cl1.du.cesnet.cz</​code>​ 
- 
-Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže. 
- 
-<​code>​[user@distro ~]$ cat .aws/​config ​ 
- 
-[profile pepa_servis] 
-output = text 
-s3 = 
-    endpoint_url = https://​s3.cl1.du.cesnet.cz 
-[plugins] 
-endpoint = awscli_plugin_endpoint 
-</​code>​ 
- 
-Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety. 
-<​code>​ 
-$ aws s3 --profile pepa_servis ls 
-2019-09-11 17:06:53 test-win 
-2019-09-11 14:45:45 large-files 
-2019-09-11 14:48:21 small-files 
-</​code>​ 
- 
-==Ovládání AWS CLI - high-level (s3)== ​ 
-**Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help** 
- 
-<​code>​$ aws s3 help</​code>​ 
- 
- 
-<hidden **Práce s buckety**>​ 
-<​note>​Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá a velká písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček.</​note>​ 
- 
-**Výroba bucketu** \\ 
-<​code>​$ aws s3 --profile pepa_servis mb s3://​test1</​code>​ 
-**Vylistování bucketů** \\ 
-<​code>​$ aws s3 --profile pepa_servis ls 
-2019-09-18 13:30:17 test1</​code>​ 
-**Odstranění bucketu** \\ 
-<​code>​aws s3 --profile pepa_servis rb s3://​test1</​code>​ 
-</​hidden>​ \\ 
- 
- 
-<hidden **Práce se soubory a adresáři**>​ 
-**Soubory** \\ 
-Upload souboru \\ 
-<​code>​$ aws s3 --profile pepa_servis cp file_1.tar s3://test1 
-upload: ./​file_1.tar to s3://​test1/​file_1.tar</​code>​ 
- 
-Download souboru \\ 
-<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​file_1.tar downloads/ 
-download: s3://​test1/​file1.tar to downloads/​file1.tar 
-</​code>​ 
- 
-Smazání souboru \\ 
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​file_1.tar ​ 
-delete: s3://​test1/​file1.tar 
-</​code>​ 
- 
-**Adresáře** \\ 
-Upload adresáře \\ 
-<​note>​Pokud uvedete na konci zdrojového adresáře lomítko "/"​ příkaz se vztahuje pouze k obsahu zdrojového adresáře. Bez lomítka se příkaz vztahuje i na adresář samotný.</​note>​ 
-<​code>​$ aws s3 --profile pepa_servis cp my_dir s3://​test1/​test_dir1 --recursive</​code>​ 
- 
-Download adresáře \\ 
-<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​test_dir1 downloads/ --recursive</​code>​ 
- 
-Smazání adresáře \\ 
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​test_dir1 --recursive</​code>​ 
- 
-**Synchronizace adresářů** \\ 
-Synchronizace adresáře na úložiště pomocí s3 \\ 
-<​code>​$ aws s3 --profile pepa_servis sync downloads s3://​test1/​my_sync/</​code>​ 
- 
-Synchronizace adresáře z úložiště pomocí s3 na lokální PC \\ 
-<​code>​$ aws s3 --profile pepa_servis sync s3://​test1/​my_sync/​ ./​restored/</​code>​ 
- 
-</​hidden>​ \\ 
- 
-/* 
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-commands.html|Amazon high-level S3]] 
-*/ 
- 
- 
-==Ovládání AWS CLI - api-level (s3api)== ​ 
-<​code>​$ aws s3api help</​code>​ 
- 
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-apicommands.html|Amazon api-level S3]] 
- 
-/* 
-<​code></​code>​ 
- 
-<​code></​code>​ 
- 
-<​code></​code>​ 
- 
-<​code></​code>​ 
- 
-<​code></​code>​ 
-*/ 
  
Poslední úprava: 23.06.2020 13:10