From e04bc51cb2b62ce91c28944f1a571ff74e483cf4 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Tue, 30 Jul 2019 09:43:15 +0200 Subject: [PATCH 01/50] Cleanup: Ensure deployments are always cleanedup Currently cleanup is run as part of the pipeline. But if a failure occurs it might not be run. Making the instances pile up on AWS. This ensures we do clean up *always* --- provisioner/tests/gating.groovy | 20 ++++++++++++++++++++ provisioner/tests/pipeline.groovy | 17 +++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/provisioner/tests/gating.groovy b/provisioner/tests/gating.groovy index 44baf55f8..6a5edcff2 100644 --- a/provisioner/tests/gating.groovy +++ b/provisioner/tests/gating.groovy @@ -143,4 +143,24 @@ Build Tag: ${env.BUILD_TAG}""" } } } + + post { + cleanup { + script { + stage('Cleaning up') { + withCredentials([string(credentialsId: 'workshops_aws_access_key', variable: 'AWS_ACCESS_KEY'), + string(credentialsId: 'workshops_aws_secret_key', variable: 'AWS_SECRET_KEY')]) { + withEnv(["AWS_SECRET_KEY=${AWS_SECRET_KEY}", + "AWS_ACCESS_KEY=${AWS_ACCESS_KEY}", + "ANSIBLE_CONFIG=provisioner/ansible.cfg", + "ANSIBLE_FORCE_COLOR=true"]) { + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=networking -e ec2_name_prefix=tower-qe-networking-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=rhel -e ec2_name_prefix=tower-qe-rhel-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=f5 -e ec2_name_prefix=tower-qe-f5-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + } + } + } + } + } + } } diff --git a/provisioner/tests/pipeline.groovy b/provisioner/tests/pipeline.groovy index d1bccdb3f..f46e78d11 100644 --- a/provisioner/tests/pipeline.groovy +++ b/provisioner/tests/pipeline.groovy @@ -189,6 +189,23 @@ ${AWX_NIGHTLY_REPO_URL}""" } } post { + cleanup { + script { + stage('Cleaning up in case of failure') { + withCredentials([string(credentialsId: 'workshops_aws_access_key', variable: 'AWS_ACCESS_KEY'), + string(credentialsId: 'workshops_aws_secret_key', variable: 'AWS_SECRET_KEY')]) { + withEnv(["AWS_SECRET_KEY=${AWS_SECRET_KEY}", + "AWS_ACCESS_KEY=${AWS_ACCESS_KEY}", + "ANSIBLE_CONFIG=provisioner/ansible.cfg", + "ANSIBLE_FORCE_COLOR=true"]) { + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=networking -e ec2_name_prefix=tower-qe-networking-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=rhel -e ec2_name_prefix=tower-qe-rhel-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + sh "ansible-playbook provisioner/teardown_lab.yml -e @provisioner/tests/vars.yml -e workshop_type=f5 -e ec2_name_prefix=tower-qe-f5-tower-${TOWER_VERSION}-${env.BRANCH_NAME}-${env.BUILD_ID}" + } + } + } + } + } failure { slackSend( botUser: false, From 50d146da439f0eb04aacebfdfadd7620170d3c1c Mon Sep 17 00:00:00 2001 From: Ryota Kanamori Date: Wed, 31 Jul 2019 02:19:23 +0900 Subject: [PATCH 02/50] add 1.2,1.3 japanese transcript files --- exercises/ansible_rhel/1.2-adhoc/README.ja.md | 304 ++++++++++++---- .../ansible_rhel/1.3-playbook/README.ja.md | 339 +++++++++++++----- exercises/ansible_rhel/README.ja.md | 42 ++- 3 files changed, 507 insertions(+), 178 deletions(-) diff --git a/exercises/ansible_rhel/1.2-adhoc/README.ja.md b/exercises/ansible_rhel/1.2-adhoc/README.ja.md index fc48f9030..355a90830 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.ja.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.ja.md @@ -1,161 +1,313 @@ -# Exercise 1 - アドホック・コマンドの実行 +# Exercise 1.2 - Ad-hoc コマンドを実行しよう -最初の演習では、Ansible の動きを確かめる上でいくつかの アドホック・コマンドを実行します。 -Ansible アドホック・コマンドではplaybookの中で利用される`モジュール`を直接CLIから実行します。 -モジュールは「よくあるインフラ作業」を部品化したもので、呼び出すことで様々なタスクをリモードノードで実行する事ができます。 -簡易かつクイックにタスクを複数のリモートノードに実行したい場合にとても有効な利用方法です。 -この後で、実際に皆様が自動化を組み立てる際には、この`モジュール`を`Playbook`に記述していくことになります。 +最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 +Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 +1つか2つ程度のタスクをたくさんのリモートノードに実行する必要がある時などにとても便利なコマンドです。 -## Step 1.1 - インベントリの定義 +## Step 1.2.1 - インベントリを操作してみよう -今回のLabでは事前にインベントリファイルが定義されているため、Step1において設定などは不要です。 -ここでは、インベントリファイルが存在するということを認識してください。 -インベントリとは、Anisbleが実行対象とするホスト群を定義するファイルです。 -インベントリでは、以下の例のようにホスト名やIPアドレスがリストされ、グループでソートが可能であり、場合によっては変数などが追加されたini形式のファイルです。 -デフォルトのインベントリファイルは Ansible の設定ファイルである `.ansible.cfg` に定義されています。この内容を確認して、インベントリーファイルの中身を確認してみましょう。 +ホスト管理にAnsibleコマンドを使用するためには、管理したいホストの一覧を定義したインベントリファイルをコントロールノード上に用意する必要があります。 +このラボでは、インベントリファイルはすでにインストラクターによって提供されているはずです。 +インベントリはiniフォーマットのファイルで、ホストの情報がリストされています。また、グループやいくつかの変数を提供しています。 +実例をみていきましょう。 ```bash -cat ~/.ansible.cfg +[all:vars] +ansible_user=student1 +ansible_ssh_pass=PASSWORD +ansible_port=22 + +[web] +node1 ansible_host= +node2 ansible_host= +node3 ansible_host= + +[control] +ansible ansible_host=44.55.66.77 +``` +皆さんのAnsible環境はすでに固有のインベントリを利用するよう設定されています。 +次のステップでは、どのように設定されているかを説明します。 +今から、インベントリを操作するための簡単なコマンドをいくつか紹介します。 + +インベントリに記述されているホスト群を参照するには、Ansibleコマンドを用いてホストのパターンを指定します。 +`--list-hosts` オプションを用いてみましょう。 +このコマンドを用いると、Ansibleコマンドが実行される際にどの管理対象ホストが含まれたホストパターンが参照されるのかを明確にするのに役立ちます。 + +もっとも基本的なホストパターンは、インベントリファイル内に記載がある管理対象のホスト名です。 +この指定方法を用いると、ansibleコマンドによって操作が実行されるホストが、インベントリファイル内の一つのホストだけになります。 +では実行してみましょう。 + +```bash +[studentansible ~]$ ansible node1 --list-hosts + hosts (1): + node1 +``` + +インベントリファイルにはたくさんの情報を含めることができます。 +ホストをグループごとにまとめたり、変数を定義することができます。 +ここで登場する例では、インベントリには`web`と`control`の2つのグループ名が記載されています。 +グループ名やホスト名など様々なパターンでAnsibleを実行して、結果を確認してみましょう。: + +```bash +[studentansible ~]$ ansible web --list-hosts +[studentansible ~]$ ansible web,ansible --list-hosts +[studentansible ~]$ ansible 'node*' --list-hosts +[studentansible ~]$ ansible all --list-hosts +``` + +また、システムを1つ以上の複数のグループへ所属させることもできます。 +例えば、サーバをwebとdatabaseどちらにも属することができます。 +Ansibleでは、グループが常に階層的である必要は無いことに注意してください。 + +> **Tip** +> +> インベントリには様々なデータを含めることができます。例えば、標準的では無いSSHポートで動作するホストがある場合には、ホスト名の後にコロンをつけて利用したいポート番号を入力できます。もしくは、Ansibleで利用する固有の名前を定義し、それらと実IPを紐付けることもできます。 + +## Step 1.2.2 - Ansibleの設定ファイルについて + +Ansibleは、Ansibleがもつini形式の設定ファイルを変更することで、動作をカスタマイズすることができます。 +Ansibleはコントロールノード上のいくつかの設定可能な場所の1つから設定ファイルを読み込みます。 +こちらの [documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html)を参考にしてみてください。 + +> **Tip** +> +> Ansibleコマンドを実行するディレクトリに`ansible.cfg`ファイルを作成・配置することが推奨されるやり方です。このディレクトリには、インベントリやPlaybookなどみなさんのAnsibleプロジェクトで利用されるファイルも含まれます。他にも、ホームディレクトリに`.ansible.cfg`を作成するやり方もあります。 + +みなさんに提供されているラボ環境では、コントロールノードの`student `ホームディレクトリに、`ansible.cfg`が必要な詳細な情報が記載され、すでに作成済みです。 +以下は`student `ホームディレクトリで実行することに注意してください。 + +```bash +[student@ansible ~]$ ls -la .ansible.cfg +-rw-r--r--. 1 student student 231 14. Mai 17:17 .ansible.cfg +``` +ファイルの内容を出力します。 + +```bash +[student@ansible ~]$ cat .ansible.cfg [defaults] +stdout_callback = yaml connection = smart timeout = 60 deprecation_warnings = False -inventory = /home/studentX/lightbulb/lessons/lab_inventory/studentX-instances.txt host_key_checking = False -private_key_file = /home/studentX/.ssh/aws-private.pem +retry_files_enabled = False +inventory = /home/student/lab_inventory/hosts ``` -`inventory=`で指定されている箇所が、デフォルトのインベントリーファイルを示しています。 +このファイルには複数の設定内容が存在しています。 +ほとんどの行の解説はここでは触れませんが、出力された内容の最後の行にだけ注意してください:そこには、インベントリの場所が記述されています。これが、Anisbleがこれまでのコマンド実行時にどのマシンが接続できるのかを知っていた理由です。 -```bash -cat /home/studentX/lightbulb/lessons/lab_inventory/studentX-instances.txt +みなさんに提供されているインベントリの内容を確認してみましょう。 +```bash +[student@ansible ~]$ cat /home/student/lab_inventory/hosts [all:vars] -ansible_user=studentX +ansible_user=student ansible_ssh_pass=ansible ansible_port=22 [web] -node1 ansible_host=13.230.247.75 -node2 ansible_host=3.112.26.239 +node1 ansible_host=11.22.33.44 +node2 ansible_host=22.33.44.55 +node3 ansible_host=33.44.55.66 [control] -ansible ansible_host=52.68.45.53 +ansible ansible_host=44.55.66.77 ``` -ここでは、3台のホストが定義されており、`[control]`に1台、`[web]`というグループに2台が含まれているということを覚えておいてください。 +> **Tip** +> +> 各受講者はそれぞれ個別のラボ環境を持っていることに注意してください。テキストの結果に表示されているIPアドレスは例であり実際のものではありません。みなさん個々の環境の実際のIPアドレスは異なります。 +他の場合と同様に、**\**をStudent Numberに置き換えてください。 +## Step 1.2.3 - Ping a host -## Step 1.2 - ホストへのping実行 +> **Warning** +> +> **みなさんのラボ環境では、ホームディレクトリ `/home/student`でコマンドを実行することを忘れないでください。 そこは、あなたの `.ansible.cfg`ファイルがあるところです。それなしでは、Ansibleはどのインベントリを使うべきかを知ることはできません。** -まずはホストへのping実行から始めましょう。 -`ping` モジュールを利用しwebグループのホストがAnsibleに応答可能であることを確認します。 +基本的なところから始めていきましょう - ホストへのpingです。 +Ansibleの`ping`モジュールを使ってみましょう。 +この`ping`モジュールは、webホストが確実に反応できるのかどうかを確認できます。 +基本的には、管理対象ホストへ接続し、そこで小さなスクリプトを実行させ結果を収集する動作をします。このモジュールが実行できれば、管理対象ホストに到達可能で、Ansibleが対象ホスト上でコマンドを正しく実行できることが確認できています。 + +> **Tip** +> +> 特定のタスクを実行するために設計されたツールがモジュールだと考えてみてください。 + +Ansibleでは`ping`モジュールを使うべきです。`-m`オプションを用いてどのAnsibleモジュールを利用するかを定義します。`-a`を使うことで特定の文字列をオプションとしてモジュールに渡すこともできます。 ```bash -ansible web -m ping +[student@ansible ~]$ ansible web -m ping +node2 | SUCCESS => { + "ansible_facts": { + "discovered_interpreter_python": "/usr/bin/python" + }, + "changed": false, + "ping": "pong" +} +[...] ``` -このpingモジュールは、通常のICMPのpingではなく「Ansibleとしてのping」になります。このpingが正常終了するということは、対象のノードが「Ansibleで操作可能な状態である」ということを示します。 - +結果の通り、各ノードから実行時の動作と結果が通知されます。 - ここでは`pong`が結果です。 -## Step 2: +## Step 1.2.4 - モジュールのリストとヘルプを表示しよう -Linuxコマンド形式で `command` モジュールを実行してみましょう。command モジュールはリモートホスト情報で任意のコマンドを実行して、その結果を回収するモジュールになります。 +Ansibleにはたくさんのモジュールが準備されています。全てのモジュールをリストしてみましょう: ```bash -ansible web -m command -a "uptime" -o - -ansible control -m command -a "uptime" -o - -ansible all -m command -a "uptime" -o +[student@ansible ~]$ ansible-doc -l ``` -`web`, `control`, `all` とすることで、実行対象がどのように変わるのかをインベントリーの定義を見ながら確認してください。 - -Note: `all` は特別なキーワードで、インベントリーに記載されたすべてのホストを対象します。 +> **Tip** +> +> `ansible-doc` では、 `q` を押して終了してください。. `up`/`down`を用いることで、コンテンツをスクロールすることができます。 +モジュールを探したい時には、次のようにしてみてください。: -## Step 3: +```bash +[student@ansible ~]$ ansible-doc -l | grep -i user +``` -webノードの定義を見てみましょう。 -`setup` モジュールを利用してエンドポイントの facts の内容を出力します。setupモジュールは対象となるノードの設定情報やOS、ハードウェアの情報を取得するためのモジュールです。 +使用例を含む、特定のモジュールのヘルプをみたい時には次のようにします。: ```bash -ansible web -m setup +[student@ansible ~]$ ansible-doc user ``` -## Step 4: +> **Tip** +> +> 必須のオプションは、`ansible-doc`内では "=" で表現されます。 + +## Step 1.2.5 - コマンドモジュールを使ってみよう。 -`yum` モジュールを利用してApacheをインストールしてみましょう。yum モジュールは対象のパッケージを操作します。 +それでは、`command`モジュールを利用して、古き良きLinuxコマンドを実行し、アウトプットを定型化してみましょう。 +これは、管理対象ホスト上でコマンドを単純に実行します。: ```bash -ansible web -m yum -a "name=httpd state=present" -b +[student@ansible ~]$ ansible node1 -m command -a "id" +node1 | CHANGED | rc=0 >> +uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 ``` -- `-b` はAnsibleがリモートノードで処理を行う際に、`sudo` で権限昇格をさせるためのオプションです。パッケージのインストールには root 権限が必要となります。 +ここでは、`command`モジュールを実行していますが、これは`-a`でオプションとして渡された文字列を対象ホストで実行するだけのモジュールです。`all`のホストパターンを使用してこのアドホックなコマンド実行を試してみてください。 +その他の例: みなさんのホストで実行されているkernelバージョンを調べてみてください。 -## Step 5: +```bash +[student@ansible ~]$ ansible all -m command -a 'uname -r' +``` -Apacheのインストールが完了したら、`service` モジュールを利用してサービスを起動してみましょう。serviceモジュールはOSのサービスを操作するモジュールです。同等のモジュルートして`systemd`というモジュールも存在します。 +時には、ホストの実行結果を1行にする方が良い時もあるかと思います。: ```bash -ansible web -m service -a "name=httpd state=started" -b +[student@ansible ~]$ ansible all -m command -a 'uname -r' -o ``` -このコマンドが正常終了したら、インベントリーで確認した`[web]`のサーバー2台のIPアドレスへブラウザでアクセスしてください。正常に設定が行われていれば、Apacheの初期画面が表示されます。 +> **Tip** +> +> 多くのLinuxコマンドのように、`ansible`は短い形式のオプションだけでなく長い形式にも対応しています。 例えば、`ansible web --module-name ping`は、`ansible web -m ping`と同じ意味となります。 このワークショップでは、短縮系のオプションが用いられます。 + +## Step 1.2.6 - Copyモジュールとパーミッション +`copy` モジュールを使って、アドホックコマンドで`node1`の`/etc/motd`ファイルを変更してみましょう。 **このケースでは、コンテンツはオプションを介して、モジュールに渡されます。** -## Step 6: +実行してみましょう: -最後に設定した情報をクリーンナップしていきます。 -逆の手順でまずはhttpdサービスの停止を行います。 +> **Warning** +> +> **おそらく失敗するでしょう!** ```bash -ansible web -m service -a "name=httpd state=stopped" -b +[student@ansible ~]$ ansible node1 -m copy -a 'content="Managed by Ansible\n" dest=/etc/motd' ``` -## Step 7: - -次に、Apacheパッケージを削除します。 +前述の通り、これは*failed*になったはずです。 ```bash -ansible web -m yum -a "name=httpd state=absent" -b + node1 | FAILED! => { + "changed": false, + "checksum": "a314620457effe3a1db7e02eacd2b3fe8a8badca", + "failed": true, + "msg": "Destination /etc not writable" + } ``` -再び、ブラウザで2台のサーバーへアクセスするとHTTPDサービスが停止したためエラーとなるはずです。 +アドホックコマンドの結果は、赤字で **FAILED!** と表示されているはずです。 なぜでしょうか? なぜなら、ユーザー **student\** はmotdファイルの編集を許されていないからです。 +これは、権限昇格(privilege escalation)が必要なケースであり、`sudo`が適切に設定されなければならない理由でもあります。`sudo`を用いてrootとしてコマンドを実行するために、`-b`のパラメータを用います。("become"と考えてください) +> **Tip** +> +> Ansibleは、SSHと同じように、現在のユーザ名(今回の場合にはstudent\)を用いて接続しに行きます。リモートユーザ名を上書きするには`-u`のパラメータを使います。 +今回のラボでは、`sudo`がすでに設定済みなので`student` で接続されても問題ありません。`-b`のパラメータを使ってもう一度実行してみましょう。 ---- -**NOTE** +```bash +[student@ansible ~]$ ansible node1 -m copy -a 'content="Managed by Ansible\n" dest=/etc/motd' -b +``` -多くのLinuxコマンドと同様に、Ansibleの実行コマンドも省略することが可能です。 -例えば、 +今度はうまくいったはずです。 ```bash -ansible web --module-name ping +node1 | CHANGED => { + "changed": true, + "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", + "dest": "/etc/motd", + "gid": 0, + "group": "root", + "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", + "mode": "0644", + "owner": "root", + "secontext": "system_u:object_r:etc_t:s0", + "size": 19, + "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", + "state": "file", + "uid": 0 ``` -は、以下のように省略した形でも実行できます。 +一般的な`command`モジュールを利用して、motdファイルの内容をチェックしてみましょう。: ```bash -ansible web -m ping +[student@ansible ~]$ ansible node1 -m command -a 'cat /etc/motd' +node1 | CHANGED | rc=0 >> +Managed by Ansible ``` +`ansible node1 -m copy …​`コマンドを再実行してみてください。以下の点に着目してみてください: -当ワークショップでは以降、コマンドを省略した形で使用していきます。 + - 出力結果は、異なる色だったはずです。(適切な端末の設定がされている場合) + - `"changed": true,` から `"changed": false,`へ変更されたはずです。 + - 最初の行が、`SUCCESS` から `CHANGED`に変わったはずです。 -この章で利用したモジュールについては、以下で利用方法などが確認できます。 -https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html +> **Tip** +> +> これにより、どこが変更されて、Ansibleがなにをやったのかをとても簡単に見つけることができるようになります。 + +## チャレンジラボ: Modules + + - `ansible-doc`を利用します。 + + - ソフトウェアパッケージを管理するために、Yumを利用できるモジュールを見つけてください。 + + - 最新バージョンのパッケージをインストールするためにはどうすれば良いのかをヘルプの例から探してみてください。 + + - Ansibleのアドホックコマンドを実行して、`node1`に`screen`の最新パッケージをインストールしてみてください。 + +> **Tip** +> +> copyモジュールで実行したアドホックコマンドを参考にして、モジュールとオプションを変更すると良いでしょう。 + +> **Warning** +> +> **以下は答えです\!** -コマンドラインで利用されているオプションを調べる際には、以下のコマンドを実行してください。 ```bash -ansible --help +[student@ansible ~]$ ansible-doc -l | grep -i yum +[student@ansible ~]$ ansible-doc yum +[student@ansible ~]$ ansible node1 -m yum -a 'name=screen state=latest' -b ``` -以下のリンクを参照すると、この後の章で出てくるコマンドとそのオプションを調べることができます。 -https://docs.ansible.com/ansible/latest/user_guide/command_line_tools.html ---- +---- + +[Ansible ワークショップ表紙に戻る](../README.ja.md) -[Click Here to return to the Ansible Linklight - Ansible for Red Hat Enterprise Linux Workshop](../README.ja.md) diff --git a/exercises/ansible_rhel/1.3-playbook/README.ja.md b/exercises/ansible_rhel/1.3-playbook/README.ja.md index 32745c96c..999735077 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.ja.md +++ b/exercises/ansible_rhel/1.3-playbook/README.ja.md @@ -1,163 +1,326 @@ -# Exercise 2 - 初めてのplaybook作成 +# Exercise 1.3 - 初めてのplaybookを書いてみよう +Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 -この演習では *playbook* を作成してみましょう。 -playbookは 先程実行した複数の ad-hoc コマンドで利用した情報を、*plays* と *tasks* のセットにし、ファイルへ置き換えたものです。 +Playbook(プレイブック)は、管理対象に対して実装したいこうなってほしいという構成や手順を記述したファイルです。Playbookを用いることで、長く複雑な管理タスクたちを、成功が予測される状態で、簡単にいつでも再現できるルーチンへと変えることができます。 -playbookは1つまたは複数のplayに、1つまたは複数のタスクを持つことができます。 +playbookは先ほど実行していたアドホックコマンドを複数取り込み、繰り返し実行可能な*plays* と *tasks* のセットとして利用することができるようになります。 - - *play* の目的はホストのグループをマッピングする事です。その他にも変数の定義やPlaybook全体の挙動に関する設定を行います。 - - *task* の目的はこれらのホストに対してモジュールを実行する事です。 +Playbookには、複数のPlayを持たせることができ、Playは1つもしくは複数のTaskを持ちます。前の章で学習したように、Taskでは*module*が呼び出され実行されます。 +*play*の目的は、ホストのグループをマッピングすることです。 *task*のゴールはそれらのホストに対して、モジュールを用いて実行することです。 -この演習のplaybookでは、1つのplayに2つのtaskを書いていきたいと思います。 +## Step 1.3.1 - Playbook Basics +PlaybookはYAML形式で書かれたテキストファイルです。 +以下のような記載が必要です。 -## Section 1: ディレクトリとplaybookファイルの作成 + - 3つのダッシュ記号から始まります(`---`) -Ansibleには、playbookディレクトリ構成の[ベスト・プラクティス](http://docs.ansible.com/ansible/playbooks_best_practices.html)があります。本演習を終えてAnsibleのスキルを更に高めたい方はこちらを読んでください。やや複雑な箇所もありますので、はじめての方はまず本演習を終えて基礎的な利用方法を理解してください。 + - 正しいインデントをスペースを用いて記述します。**tabではありません**\! -今回は、とてもシンプルなplaybookディレクトリ構成と、そこに複数ファイルを追加する簡易な形で進めます。 +いくつかの重要なコンセプトがあります: + - **hosts**: タスクを実行する管理対象ホストです。 -*ステップ 1:* 以下のように *apache_basic* をホームディレクトリとして作成し、作成したディレクトリに移動します。 + - **tasks**: Ansibleモジュールを呼び出し、必要なオプションを渡すことで実行される操作たち + + - **become**: アドホックコマンドで `-b` を用いるのと同様に、Playbook内で権限昇格させます。 + +> **Warning** +> +> Ansibleはplayとtaskを表示されている順序で実行していくため、Playbook内のコンテンツの順序はとても重要です。 + +Playbookは**冪等性(べきとうせい。ある操作を1回行っても複数回行っても結果が同じになる性質)**を持っているべきです。一度、playbookを正しい状態にすべく実行されたのであれば、さらにもう一度playbookが実行された場合には安全であるべきです。そしてその際にはなんの変更もホストで発生するべきではありません。 + +> **Tip** +> +> ほとんどのAnsibleモジュールはべき等性を持っているので、比較的簡単に正しいかどうかは確認できます。 + +## Step 1.3.2 - ディレクトリの構成とPlaybook用のファイルを作成しよう + +セオリーの話はもう十分でしょう。そろそろ最初のPlaybookを作成しましょう。 +このラボでは、Apache webserverを3つのステップでセットアップするPlaybookを作成します。: + + - First step: httpd パッケージをインストールします。 + + - Second step: httpd serviceを構成し、スタートさせます。 + + - Third step: index.html ファイルを作成します。 + +このPlaybookは、Apache webserverなどのPackageが`node1`にインストールされているかを確認します。 + +Playbookの優先されるディレクトリ構造についての[ベストプラクティス](http://docs.ansible.com/ansible/playbooks_best_practices.html) はこちらを参考にしてください。 +あなたが、Ansibleニンジャとしてのスキルを磨く時には、これらのプラクティスを読んで理解しておくことを強くお勧めします。 +というのも、今日紹介するのはとても基本的なものですし、独自の複雑な構造なものを作ってしまうと混乱するだけだからです。 + +では、Playbookを非常に単純なディレクトリ構造で作成し、そこに2,3のファイルを追加します。 + +制御ホスト **ansible**のをホームディレクトリ上に、`ansible-files`というディレクトリを作成し、そこに変更を加えていきます。 ```bash -mkdir ~/apache_basic -cd ~/apache_basic +[student@ansible ~]$ mkdir ansible-files +[student@ansible ~]$ cd ansible-files/ +``` + +以下の内容の`apache.yml`という名前のファイルを追加してください。 +以前の章と同じように、`vi` や `vim` などを用いてください。 +エディタの利用に慣れていない方は、[editor intro](../0.0-support-docs/editor_intro.md)をチェックしてみてください。 + +```yaml +--- +- name: Apache server installed + hosts: node1 + become: yes ``` -*ステップ 2:* `vi` または `vim` で `install_apache.yml` ファイルを作成編集します。 +これは、Ansibleの強みの一つを示しています。 +Playbookの構造は、とても簡単で読みやすく、理解しやすいはずです。 +例えばこのPlaybookでは以下を読み取ることができます: + - このPlayの名前は、`name:`で設定されているものです。 -## Section 2: Play の定義 + - Playbookが実行されるホストは、`hosts:`で定義されています -現在編集中の `install_apache.yml` に、Playを定義し、各行の内容を理解しましょう。 + - `become:`でユーザー権限の昇格を有効化しています。 +> **Tip** +> +> パッケージをインストールしたり、root権限を必要とする諸々のタスクを実行するには、いうまでもなく権限昇格が必要になります。これは、Playbookが`become: yes`であることで実行可能です。 -```yml +Playの定義ができたので、何がしかのタスクを追加していきましょう。 +Apacheのパッケージの最新版がインストールされていることを確認するタスクを追加します。 +次のリストのようにファイルを変更していきましょう。 + +```yaml --- -- hosts: web - name: Install the apache web service +- name: Apache server installed + hosts: node1 become: yes + tasks: + - name: latest Apache version installed + yum: + name: httpd + state: latest ``` +> **Tip** +> +> PlaybookはYAMLで書かれているので、行とキーワードの位置関係は極めて重要です。`task`の *t*と、`become`の*b*が必ず縦に並ぶようによく確認してください。Ansibleに慣れてきたら、[YAML構文(YAML Syntax)](http://docs.ansible.com/ansible/YAMLSyntax.html)について少し時間をかけて勉強してみると良いでしょう。 -- `---` YAML開始を定義 -- `hosts: web` はこのPlaybookを実行する対象のグループを指定しています。グループ名はInvenotryファイルで定義されています。 -- `name: Install the apache web service` Playに名称を設定しています。任意の名称設定が可能です。名称を付けず、スキップすることもできます。 -- `become: yes` リモートホストでroot権限を使い実行するためのオプションを指定しています。デフォルトはsudoですが、su、pbrun、[その他](http://docs.ansible.com/ansible/become.html) もサポートしています。 +追加された行は以下の通りです。: + - Task箇所はキーワード`tasks`で始まっています。 + + - タスクには名前がつけられ、タスクのためのモジュールが参照されています。ここでは、"yum"モジュールが用いられています。 -## Section 3: Play内のTask追加 + - モジュールに加えるパラメータが追加されました: `name: `はyumモジュールで管理されるパッケージの名称を指定しています。`state`はそのインストールされるパッケージの望ましい状態を定義しています。 + +> **Tip** +> +> モジュールのパラメータは、それぞれのモジュールで固有なものです。よくわからない場合には、再度`ansible-doc`コマンドを用いて調べてみてください。 -ここまででplayを定義しました。 -続けて実行する複数のtaskを追加しましょう。 -このあとに記述する`task` の *t* と、先ほどのplayで記載した`become` の *b* が、インデントで同じ位置に来るように調整してください。 -この記述の仕方がとても重要です。 +## Step 1.3.3 - Playbookを実行してみる -Playbook内の記述は、すべてここで示されている形式に倣う必要があります。 -この演習で作成するPlaybookの全文を確認したい場合は、この演習ページの最下部を参照してください。 +Playbookは、管理ノード上で`ansible-playbook`コマンドを使うことで実行できます。新しいPlaybookを実行する前に、構文エラーを確認しておくことをお勧めします。 +```bash +[student@ansible ansible-files]$ ansible-playbook --syntax-check apache.yml +``` -```yml - tasks: - - name: install apache - yum: - name: httpd - state: present +エラーがでなければ、これでPlaybookを実行する準備は整ったと言えます。: - - name: start httpd - service: - name: httpd - state: started +```bash +[student@ansible ansible-files]$ ansible-playbook apache.yml ``` +ここでは出力に何もエラーが表示されていないはずです。実行されたタスクの概要と実行結果が要約された`play recap`が提供されています。 +リストされている中には、"Gathering Facts"と呼ばれるタスクがあると思います。これは、各Playのはじめに自動実行されるあらかじめ組み込またタスクです。 +各管理対象ホストに関する様々な情報を収集します。これの説明については後の章で実施します。 -- `tasks:` 1つまたは複数のtask定義がされることを示す -- `- name:` playbookの実行時に標準出力されるそれぞれのtask名称です。簡潔かつ適切なtask名を記入します。 +SSHを用いて`node1`でApacheが確かにインストールされているかどうかを確認してください。IPアドレスの情報はインベントリに記載されています。IPアドレスを入力してSSHでノードへ接続してください。 +```bash +[student@ansible ansible-files]$ grep node1 ~/lab_inventory/hosts +node1 ansible_host=11.22.33.44 +[student@ansible ansible-files]$ ssh 11.22.33.44 +student@11.22.33.44's password: +Last login: Wed May 15 14:03:45 2019 from 44.55.66.77 +Managed by Ansible +[student@node1 ~]$ rpm -qi httpd +Name : httpd +Version : 2.4.6 +[...] +``` -```yml - yum: - name: httpd - state: present +`node1`からログアウトし制御ホストへ戻るには、`exit`コマンドを用いてください。制御ホストに戻ったら、AnsibleのAd-hocコマンドを用いてインストールされているパッケージを確認してみましょう\! + +```bash +[student@ansible ansible-files]$ ansible node1 -m command -a 'rpm -qi httpd' ``` +Playbookをもう一度実行して、出力結果を比較してみましょう。 +先ほど`changed`だった出力は、`ok`へと変わり、色も黄色から緑色に変わったはずです。また、`play recap`の内容も変わりました。 +この結果の差により、Ansibleが実際に何を変更したのかを簡単に見つけることができます。 + +## Step 1.3.4 - Playbookを拡張してみよう。Apacheの起動と有効化 -- これらの3行は httpd をインストールするため Ansible の *yum* モジュールを呼び出しています。 -yum モジュールの全オプションを確認するには[こちらをクリック](http://docs.ansible.com/ansible/yum_module.html) +Playbookの次のパートでは、確かにApache Webserverが`node1`上で有効でかつ起動していることを確認していきます。 +制御ホスト上で、Student Userとして、`~/ansible-files/apache.yml`を編集し、`service`モジュールに2つ目のタスクを追加していきます。Playbookは以下のようになります。 -```yml +```yaml +--- +- name: Apache server installed + hosts: node1 + become: yes + tasks: + - name: latest Apache version installed + yum: + name: httpd + state: latest + - name: Apache enabled and running service: name: httpd + enabled: true state: started ``` -- 次の複数行は、httpd サービスを開始するため、*service* モジュールを呼び出しています。このモジュールはリモートホストのサービスを制御する際使うのに適してます。 -service モジュールの全オプションを確認するには[こちらをクリック](http://docs.ansible.com/ansible/service_module.html) +繰り返しますが、これら追加された行の意味を理解するのは簡単なはずです。 + - 2つ目のタスクが作成され、名前がつけられました。 -## Section 4: playbookの保存 + - モジュールが指定されています。 (`service`) -playbookを書き終えたら、保存しましょう。 + - パラメータが提供されています。 -`vi` または `vim`にて、`write/quit` を使用(例: Escキー押下後、wq!実行)し、playbookを保存します。 +2つ目の追加されたタスクでは、Apacheサーバが実際にターゲットホスト上で実行状態かを確認しています。拡張したPlaybookを実行してみましょう。 -これにより、playbook `install_apache.yml` が完成です。自動化準備OKとなります。 +```bash +[student@ansible ansible-files]$ ansible-playbook apache.yml +``` ---- -**NOTE** -Ansible (実際にはYAML) はインデントやスペースの形式が少し特殊かもしれません。後ほど余計な混乱を来さぬよう [YAML シンタックス](http://docs.ansible.com/ansible/YAMLSyntax.html) を、その際に完成したplaybookを傍らに置きながらご覧いただき、スペースやアラインメントをご確認いただくことをお勧めいたします。 +出力された結果をみてみてください。 +いくつかのタスクは緑色で"OK"と記載され、1つだけ黄色で"changed"と表示されているはずです。 + - もう一度、AnsibleのAd-Hocコマンドw用いてApacheが有効になっておりかつ起動していることを確認します。例えば、`systemctl status httpd`などを実行しましょう。 + - Playbookをもう一度実行して、出力結果が変わる様に慣れてみましょう。 ---- +## Step 1.3.5 - Playbookを拡張してみよう。index.htmlの作成 -```yml ---- -- hosts: web - name: Install the apache web service - become: yes +タスクが正しく実行され、Apacheが接続を受け付けているのかを確認してみましょう。 +管理ノードから、Ad-hocコマンドでAnsibleの`uri`モジュールを使ってHTTPリクエストを実施します。 **\** を皆さんの環境のインベントリファイルのノード情報に置き換えて実行することに注意してください。 - tasks: - - name: install apache - yum: - name: httpd - state: present +> **Warning** +> +> **おそらく、たくさんの赤い文字列と403の文字が見えます\!** - - name: start httpd - service: - name: httpd - state: started +```bash +[student@ansible ansible-files]$ ansible localhost -m uri -a "url=http://" ``` ---- +たくさんの赤い列とエラーが表示されたことでしょう。 +少なくとも、Apacheが提供すべき`index.html`ファイルがなければとても汚い"HTTP Error 403: Forbidden"ステータスが投げつけられるのはしょうがないことですし、Ansibleもエラーをレポートするはずです。 -## Section 5: playbookの実行 -作成したPlaybookを実行しましょう。Playbookの実行には`ansible-playbook`コマンドを利用します。実行する前に`--syntax-check`オプションで構文をチェックしてみましょう。もしエラーが出る場合はYAMLの定義にミスがあります。インデントの位置などを確認してください。 +では、Ansibleを使って`index.html`をデプロイしてみましょう。 +管理ノード上で`vim`などを用いて以下の内容の`~/ansible-files/index.html`を作成します。 -```bash -ansible-playbook install_apache.yml --syntax-check +```html + +

Apache is running fine

+ ``` -ではいよいよ実行です。 +すでに今日の演習で`copy`モジュールを使いコマンドラインからファイルへテキストを入力した経験をしましたね? +それではPlaybookでモジュールを使って、ファイルをコピーしましょう。 +管理ノード上で、StudentXユーザとして、`~/ansible-files/apache.yml`を編集し`copy`モジュール利用する新しいタスクを追加してください。 +それは以下のような記述になるはずです。 + +```yaml +--- +- name: Apache server installed + hosts: node1 + become: yes + tasks: + - name: latest Apache version installed + yum: + name: httpd + state: latest + - name: Apache enabled and running + service: + name: httpd + enabled: true + state: started + - name: copy index.html + copy: + src: ~/ansible-files/index.html + dest: /var/www/html/ ``` -ansible-playbook install_apache.yml + +そろそろPlaybookの構文に慣れてきましたか? +では、このPlaybookでは何が起きるでしょうか。 +新しいタスクでは、`copy`モジュールを使って、コピー操作のためのコピー元とコピー先のオプためのんをパラメータとして定義しています。 + +拡張したPlaybookを実行してみましょう。 + +```bash +[student@ansible ansible-files]$ ansible-playbook apache.yml ``` -正常に終了したら、ブラウザで2台のサーバーへアクセスしてください。もしエラーが出る場合には、スペルミスなどが考えられるますので確認・修正して再度`ansible-playbook`コマンドを実行してください。 + - 出力結果をよくみてください。 + + - Apacheをテストするために、先ほどの`uri`モジュールを用いたAd-hocコマンドをもう一度実行してみましょう。コマンドは色々な情報を返していると思いますが、その中でもフレンドリーな緑色で"status: 200"を返しているはずです。 + +## Step 1.3.6 - 練習: 複数ホストへの適用 + +ここまでのラボはとてもよかったと思いますが、Ansibleの本当に良いところは同じ一連のタスクを様々なホストに確実に適用していくことです。 + + - では、Playbook apache.yml を`node1` **と** `node2` **と** `node3`へ実行するように変更してみましょう。 -## Section 6: 設定を削除するplaybookの作成と実行 +覚えているかもしれませんが、インベントリには全てのノードが`web`グループとしてリストされていました。: -先程作成した`install_apache.yml`をコピーして`uninstall_apache.yml`を作成して実行してください。ここでは詳細な手順は解説しませんが以下にヒントを記載します。 +```ini +[web] +node1 ansible_host=11.22.33.44 +node2 ansible_host=22.33.44.55 +node3 ansible_host=33.44.55.66 +``` + +> **Tip** +> +> 例示されているIPアドレスは単なる例であり、あなたのノードは異なるIPアドレスを持っているはずです。 -- yumモジュールでパッケージを削除するには `state: absent` とする。 -- serviceモジュールでサービスを停止するには `state: stopped` とする。 -- 実行する順番に気をつけてください。 +Playbookをグループ`web`をさすように変更しましょう。 +```yaml +--- +- name: Apache server installed + hosts: web + become: yes + tasks: + - name: latest Apache version installed + yum: + name: httpd + state: latest + - name: Apache enabled and running + service: + name: httpd + enabled: true + state: started + - name: copy index.html + copy: + src: ~/ansible-files/index.html + dest: /var/www/html/ ``` -ansible-playbook uninstall_apache.yml + +Playbookを実行してみましょう: + +```bash +[student@ansible ansible-files]$ ansible-playbook apache.yml ``` -[Click Here to return to the Ansible Linklight - Ansible for Red Hat Enterprise Linux Workshop](../README.ja.md) +最後に、Apacheが実行された全てのノードで動作しているかどうかを確認してみてください。最初に、インベントリにおいて記載があるそれぞれのノードのIPアドレスを確認します。全てのWebサーバで先ほど`node1`で実行したのと同じように`uri`モジュールを用いたAd-hocコマンドを実行してみましょう。全ての出力結果は先ほどと同じようにグリーンで表示されるはずです。 + +---- + +[Ansible ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engine-exercises) diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README.ja.md index c950df756..5c27e345c 100644 --- a/exercises/ansible_rhel/README.ja.md +++ b/exercises/ansible_rhel/README.ja.md @@ -1,12 +1,12 @@ -# Ansible Linklight - Ansible エンジン +# Ansible Workshop - Ansible for Red Hat Enterprise Linux -このコンテンツは、Ansibleの効果的なデモンストレーション、ワークショップ、ハンズオン、自己学習など、さまざまな目的や用途で利用可能なツールです。 +Ansibleはアプリケーションの展開、構成管理、オーケストレーションなどで利用できるシンプルでパワフルな自動化エンジンであり、すぐに習得することができます。 -このラボでは、基本からより高度な概念まで、自動化における Ansible Engine の使い方を学びます。 +このラボの最初のセクションでは、Ansible Engineによる自動化の基礎からいくつかの先進的なコンセプトまでを学習します。 -このラボを終了すると、自動化の要件に対する Ansible の適応方法を理解することができます。 +二つ目のラボでは、Ansible Towerについて、Towerとは何か、仕組み、利点など、概要を説明します。 -想定している管理対象はLinux ホストです。 +これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 **Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![uk](../../images/japan.png) 日本語](README.ja.md). @@ -15,16 +15,30 @@ プレゼンテーション資料はこちら: [Ansible for Red Hat Enterprise Linux Deck](../../decks/ansible-technical.pdf) -## Ansible エンジン演習 +Ansibleのベストプラクティスもあわせてご覧ください: +[Ansible Best Practices](../../decks/ansible_best_practices.pdf) + +## Section 1 - Ansible Engineの演習 + + - [演習 1.1 - 要件を確認してみよう](1.1-setup/README.ja.md) + - [演習 1.2 - Ad-hoc コマンドを実行しよう](1.2-adhoc/README.ja.md) + - [演習 1.3 - 初めてのplaybook作成](1.3-playbook/README.ja.md) + - [演習 1.4 - 変数を使ってみる](1.4-variables/README.ja.md) + - [演習 1.5 - 条件式、ハンドラ、ループを使う](1.5-handlers/README.ja.md) + - [演習 1.6 - テンプレートを使う](1.6-templates/README.ja.md) + - [演習 1.7 - Roles:Playbookを再利用可能にする](1.7-role/README.ja.md) + - [演習 1.8 - ボーナスラボ](1.8-bonus/README.ja.md) + +## Section 2 - Ansible Towerの演習 + + - [Exercise 2.1 - Towerの紹介](2.1-intro) + - [Exercise 2.2 - インベントリ, クレデンシャル情報, Ad-hoc コマンド](2.2-cred) + - [Exercise 2.3 - Project, job template](2.3-projects) + - [Exercise 2.4 - サーベイ機能](2.4-surveys) + - [Exercise 2.5 - Role based access control](2.5-rbac) + - [Exercise 2.6 - ワークフロー](2.6-workflows) + - [Exercise 2.7 - まとめ](2.7-wrap) - - [演習 1.1 - 前提条件の確認](1-adhoc/README.ja.md) - - [演習 1.2 - アドホック・コマンドの実行](1-adhoc/README.ja.md) - - [演習 1.3 - 初めてのplaybook作成](2-playbook/README.ja.md) - - [演習 1.4 - 変数を使ってみる](3-variables/README.ja.md) - - [演習 1.5 - 条件式、ハンドラ、ループを使う](3-variables/README.ja.md) - - [演習 1.6 - テンプレートを使う](4-runplaybook/README.ja.md) - - [演習 1.7 - Roles:Playbookを再利用可能にする](5-role/README.ja.md) - - [演習 1.8 - ボーナスラボ](5-role/README.ja.md) ## 追加情報 - [Ansible - はじめに](http://docs.ansible.com/ansible/latest/intro_getting_started.html) From 6df82f4a9758be71751460056033c2c80d24b09b Mon Sep 17 00:00:00 2001 From: Ryota Kanamori Date: Wed, 31 Jul 2019 02:36:47 +0900 Subject: [PATCH 03/50] add new ja file --- exercises/ansible_rhel/1.1-setup/README.ja.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 exercises/ansible_rhel/1.1-setup/README.ja.md diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md new file mode 100644 index 000000000..f7f54670b --- /dev/null +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -0,0 +1,77 @@ +# Exercise 1.1 - 要件を確認してみよう + +## ラボ環境について + +このラボでは、事前設定されたラボ環境で作業します。 以下のホストにアクセスできます。 + +| Role | Inventory name | +| ---------------------| ---------------| +| Ansible Control Host | ansible | +| Managed Host 1 | node1 | +| Managed Host 2 | node2 | +| Managed Host 2 | node3 | + +## Step 1.1 - 環境へのアクセス + +SSHでログインできます。: + +> **Warning** +> +> **11.22.33.44** のような文字列を、個々に提供されているStudent情報に記載の **IP** などへ読み替えてください。 **X** は student**X** といった具合です. + + ssh studentX@11.22.33.44 + +> **Tip** +> +> パスワードは **ansible** です。 + +rootになるには以下のように実行してください。: + + [student@ansible ~]$ sudo -i + +ほとんどの前提条件タスクはすでに行われています。: + + - Ansible はすでにインストールされています。 + + - SSH connection と keyはすでに設定済みです。 + + - root権限を必要とするコマンドを実行すできるように、`sudo` は適切に設定され、権限昇格が可能になっているはずです. + +Ansibleが適切にInstallされているかを確認しましょう。 + + [root@ansible ~]# ansible --version + ansible 2.7.0 + [...] + +> **Note** +> +> Ansibleは構成管理を単純にしてくれます。 Ansibleはデータベースや実行用のデーモンを必要とせず、ラップトップでも簡単に実行できます。 管理対象ホストでは、実行用の常駐エージェントなども不要です。 + +rootアカウントからログアウトします。 + + [root@ansible ~]# exit + logout + +> **Note** +> +> 以降のすべての演習では、明示的な指示がない限り、コントロールノードのstudent\ ユーザーとして作業してください。 + +## Step 1.2 - Working the Labs + +ここからのラボについては、かなりコマンドラインばかりだと思うかもしれません。:-) + + - すべて手で入力するのではなく、必要に応じてブラウザからコピー&ペーストしてください。しかし、考えたり理解したりするのをやめたりしないでください。 + + - すべてのラボは **Vim** を使って準備しましたが、みんながそれを愛しているわけではないことを理解しています。 **Midnight Commander** などを利用することができます。(**mc**を 実行すると実行できます。ファンクションキーはEsc-\でアクセスするかマウスでクリックすることでアクセスできます。)。または **Nano**(**nano**を実行)なども利用できます。 簡単な[editor intro]も用意してあります。(../ 0.0-support-docs / editor_intro.md) + + + +## Step 1.3 - チャレンジLabs + +このラボガイドの様々な章で「チャレンジラボ」セクションがあります。 +これらのラボは、これまでに学んだことを使って解決するための様々なタスクを用意しています。 +それぞれのラボの解答案は、`Warning`サインより下に記述されています。 + +---- + +[Click here to return to the Ansible for Red Hat Enterprise Linux Workshop](../README.ja.md#section-1---ansible-engine-exercises) From dc3a5ae55403ad084eb20eae894c8c437e1cbb81 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Wed, 31 Jul 2019 09:17:00 +0200 Subject: [PATCH 04/50] Pipeline: Collect the ansible version info --- provisioner/tests/gating.groovy | 2 ++ provisioner/tests/pipeline.groovy | 2 ++ 2 files changed, 4 insertions(+) diff --git a/provisioner/tests/gating.groovy b/provisioner/tests/gating.groovy index 6a5edcff2..68c42fd67 100644 --- a/provisioner/tests/gating.groovy +++ b/provisioner/tests/gating.groovy @@ -22,6 +22,8 @@ Build Tag: ${env.BUILD_TAG}""" } sh 'pip install netaddr' sh 'yum -y install sshpass' + sh 'ansible --version | tee ansible_version.log' + archiveArtifacts artifacts: 'ansible_version.log' script { ANSIBLE_WORKSHOPS_REFSPEC = "+refs/pull/${env.CHANGE_ID}/head:refs/remotes/origin/${env.BRANCH_NAME}" diff --git a/provisioner/tests/pipeline.groovy b/provisioner/tests/pipeline.groovy index f46e78d11..8ad501b93 100644 --- a/provisioner/tests/pipeline.groovy +++ b/provisioner/tests/pipeline.groovy @@ -52,6 +52,8 @@ ${AWX_NIGHTLY_REPO_URL}""" } sh 'pip install netaddr' sh 'yum -y install sshpass' + sh 'ansible --version | tee ansible_version.log' + archiveArtifacts artifacts: 'ansible_version.log' script { ANSIBLE_WORKSHOPS_URL = "https://github.com/${params.WORKSHOP_FORK}/workshops.git" From 695516d3eb7c51e5eb2bbdc835a039a58b0315f4 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Wed, 31 Jul 2019 10:35:53 +0200 Subject: [PATCH 05/50] Enable mutliple ansible version testing --- provisioner/tests/pipeline.groovy | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/provisioner/tests/pipeline.groovy b/provisioner/tests/pipeline.groovy index 8ad501b93..38ab9996a 100644 --- a/provisioner/tests/pipeline.groovy +++ b/provisioner/tests/pipeline.groovy @@ -8,7 +8,12 @@ pipeline { description: 'Tower version to deploy', choices: ['devel', '3.5.1'] ) - string( + choice( + name: 'ANSIBLE_VERSION', + description: 'Ansible version to use to deploy the lab', + choices: ['devel', 'stable-2.8'] + ) + string( name: 'WORKSHOP_FORK', description: 'Workshop fork to deploy from', defaultValue: 'ansible' @@ -25,6 +30,7 @@ pipeline { stage('Build Information') { steps { echo """Tower Version under test: ${params.TOWER_VERSION} +Ansible version under test: ${params.ANSIBLE_VERSION} Workshop branch under test: ${params.WORKSHOP_BRANCH} ${AWX_NIGHTLY_REPO_URL}""" } @@ -52,6 +58,7 @@ ${AWX_NIGHTLY_REPO_URL}""" } sh 'pip install netaddr' sh 'yum -y install sshpass' + sh "pip install git+https://github.com/ansible/ansible.git@${params.ANSIBLE_VERSION}" sh 'ansible --version | tee ansible_version.log' archiveArtifacts artifacts: 'ansible_version.log' script { @@ -214,7 +221,7 @@ ${AWX_NIGHTLY_REPO_URL}""" color: "#922B21", teamDomain: "ansible", channel: "#workshops-events", - message: "*Tower version: ${params.TOWER_VERSION}* | Workshop branch: ${params.WORKSHOP_BRANCH} | Integration State: FAIL | <${env.RUN_DISPLAY_URL}|Link>" + message: "*Tower version: ${params.TOWER_VERSION}* | Ansible version: `${params.ANSIBLE_VERSION}` | Workshop branch: ${params.WORKSHOP_BRANCH} | Integration State: FAIL | <${env.RUN_DISPLAY_URL}|Link>" ) } success { @@ -224,7 +231,7 @@ ${AWX_NIGHTLY_REPO_URL}""" teamDomain: "ansible", channel: "#workshops-events", message: """ -*Tower version: ${params.TOWER_VERSION}* | Workshop branch: ${params.WORKSHOP_BRANCH} | Integration State: OK | <${env.RUN_DISPLAY_URL}|Link> \ +*Tower version: ${params.TOWER_VERSION}* | Ansible version: `${params.ANSIBLE_VERSION}` | Workshop branch: ${params.WORKSHOP_BRANCH} | Integration State: OK | <${env.RUN_DISPLAY_URL}|Link> \ Deprecation Warnings: *${RHEL_DEPRECATED_WARNINGS}* in RHEL lab - *${NETWORKING_DEPRECATED_WARNINGS}* in Networking lab - *${F5_DEPRECATED_WARNINGS}* in F5 lab """ ) From 5bd677df0bbbd8ff35fc19e4305834ee1bbf0f90 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 11:55:21 -0400 Subject: [PATCH 06/50] syncing branch for aug 2nd, 11:55AM --- .../1-explore/{README.ja.md => README_ja.md} | 0 .../{README.ja.md => README_ja.md} | 0 .../3-facts/{README.ja.md => README_ja.md} | 0 provisioner/group_vars/all.yml | 1 + .../manage_ec2_instances/defaults/main.yml | 8 +++ .../tasks/instances_storage.yml | 54 +++++++++++++++++++ 6 files changed, 63 insertions(+) rename exercises/ansible_network/1-explore/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/2-first-playbook/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/3-facts/{README.ja.md => README_ja.md} (100%) create mode 100644 provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml diff --git a/exercises/ansible_network/1-explore/README.ja.md b/exercises/ansible_network/1-explore/README_ja.md similarity index 100% rename from exercises/ansible_network/1-explore/README.ja.md rename to exercises/ansible_network/1-explore/README_ja.md diff --git a/exercises/ansible_network/2-first-playbook/README.ja.md b/exercises/ansible_network/2-first-playbook/README_ja.md similarity index 100% rename from exercises/ansible_network/2-first-playbook/README.ja.md rename to exercises/ansible_network/2-first-playbook/README_ja.md diff --git a/exercises/ansible_network/3-facts/README.ja.md b/exercises/ansible_network/3-facts/README_ja.md similarity index 100% rename from exercises/ansible_network/3-facts/README.ja.md rename to exercises/ansible_network/3-facts/README_ja.md diff --git a/provisioner/group_vars/all.yml b/provisioner/group_vars/all.yml index 12baf35e8..3ee37beff 100644 --- a/provisioner/group_vars/all.yml +++ b/provisioner/group_vars/all.yml @@ -11,6 +11,7 @@ valid_workshop_types: - f5 - rhel - security + - storage network_type: multivendor valid_network_types: - cisco diff --git a/provisioner/roles/manage_ec2_instances/defaults/main.yml b/provisioner/roles/manage_ec2_instances/defaults/main.yml index 74b8e5cca..4dbd4b506 100644 --- a/provisioner/roles/manage_ec2_instances/defaults/main.yml +++ b/provisioner/roles/manage_ec2_instances/defaults/main.yml @@ -85,3 +85,11 @@ ec2_info: architecture: x86_64 filter: 'RHEL-7.6_HVM-20190515-x86_64-0-Access2-GP2' #FIXME - needs to be something checkpoint username: ec2-user + netapp: + owners: 679593333241 + size: t2.medium + os_type: linux + disk_space: 10 + architecture: x86_64 + filter: 'OnCommand_Cloud_Manager_3.7.0_Marketplace*' + username: ec2-user diff --git a/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml new file mode 100644 index 000000000..bfc79be57 --- /dev/null +++ b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml @@ -0,0 +1,54 @@ +- name: find ami for netapp + ec2_ami_facts: + region: "{{ ec2_region }}" + owners: "{{ ec2_info[netapp].owners }}" + filters: + name: "{{ ec2_info[netapp].filter }}" + architecture: "{{ ec2_info[netapp].architecture }}" + register: amis + +- name: save ami for netapp + set_fact: + netapp_ami: > + {{ amis.images | selectattr('name', 'defined') | sort(attribute='creation_date') | last }} + +- name: Create EC2 instances for netapp + ec2: + assign_public_ip: yes + key_name: "{{ ec2_name_prefix }}-key" + group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_info[rhel].size }}" + image: "{{ netapp_ami.image_id }}" + region: "{{ ec2_region }}" + exact_count: "{{ student_total }}" + count_tag: + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + wait: "{{ ec2_wait }}" + vpc_subnet_id: "{{ ec2_vpc_subnet_id }}" + volumes: + - device_name: /dev/sda1 + volume_type: gp2 + volume_size: "{{ ec2_info[rhel].disk_space }}" + delete_on_termination: true + register: netapp_output + +- name: Ensure tags are present for netapp_output + ec2_tag: + region: "{{ ec2_region }}" + resource: "{{item.1}}" + state: present + tags: + Name: "{{ ec2_name_prefix }}-student{{item.0 + 1}}-netapp" + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + Workshop: "{{ec2_name_prefix}}" + Index: "{{ item[0] }}" + Student: "student{{item.0 + 1}}" + AWS_USERNAME: "{{ linklight_user }}" + Info: "AWS_USERNAME that provisioned this-> {{ linklight_user }}" + Linklight: "This was provisioned through the linklight provisioner" + Students: "{{student_total}}" + short_name: "netapp" + username: "{{ec2_info[rhel].username}}" + with_indexed_items: + - "{{ netapp_output.instance_ids }}" + when: netapp_output.instance_ids is not none From 34ef26e955397281b89e10415e5821e62cd97614 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 11:55:21 -0400 Subject: [PATCH 07/50] syncing branch for aug 2nd, 11:55AM --- .../1-explore/{README.ja.md => README_ja.md} | 0 .../{README.ja.md => README_ja.md} | 0 .../3-facts/{README.ja.md => README_ja.md} | 0 provisioner/group_vars/all.yml | 1 + .../manage_ec2_instances/defaults/main.yml | 8 +++ .../tasks/instances_storage.yml | 54 +++++++++++++++++++ 6 files changed, 63 insertions(+) rename exercises/ansible_network/1-explore/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/2-first-playbook/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/3-facts/{README.ja.md => README_ja.md} (100%) create mode 100644 provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml diff --git a/exercises/ansible_network/1-explore/README.ja.md b/exercises/ansible_network/1-explore/README_ja.md similarity index 100% rename from exercises/ansible_network/1-explore/README.ja.md rename to exercises/ansible_network/1-explore/README_ja.md diff --git a/exercises/ansible_network/2-first-playbook/README.ja.md b/exercises/ansible_network/2-first-playbook/README_ja.md similarity index 100% rename from exercises/ansible_network/2-first-playbook/README.ja.md rename to exercises/ansible_network/2-first-playbook/README_ja.md diff --git a/exercises/ansible_network/3-facts/README.ja.md b/exercises/ansible_network/3-facts/README_ja.md similarity index 100% rename from exercises/ansible_network/3-facts/README.ja.md rename to exercises/ansible_network/3-facts/README_ja.md diff --git a/provisioner/group_vars/all.yml b/provisioner/group_vars/all.yml index 12baf35e8..3ee37beff 100644 --- a/provisioner/group_vars/all.yml +++ b/provisioner/group_vars/all.yml @@ -11,6 +11,7 @@ valid_workshop_types: - f5 - rhel - security + - storage network_type: multivendor valid_network_types: - cisco diff --git a/provisioner/roles/manage_ec2_instances/defaults/main.yml b/provisioner/roles/manage_ec2_instances/defaults/main.yml index 74b8e5cca..4dbd4b506 100644 --- a/provisioner/roles/manage_ec2_instances/defaults/main.yml +++ b/provisioner/roles/manage_ec2_instances/defaults/main.yml @@ -85,3 +85,11 @@ ec2_info: architecture: x86_64 filter: 'RHEL-7.6_HVM-20190515-x86_64-0-Access2-GP2' #FIXME - needs to be something checkpoint username: ec2-user + netapp: + owners: 679593333241 + size: t2.medium + os_type: linux + disk_space: 10 + architecture: x86_64 + filter: 'OnCommand_Cloud_Manager_3.7.0_Marketplace*' + username: ec2-user diff --git a/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml new file mode 100644 index 000000000..bfc79be57 --- /dev/null +++ b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml @@ -0,0 +1,54 @@ +- name: find ami for netapp + ec2_ami_facts: + region: "{{ ec2_region }}" + owners: "{{ ec2_info[netapp].owners }}" + filters: + name: "{{ ec2_info[netapp].filter }}" + architecture: "{{ ec2_info[netapp].architecture }}" + register: amis + +- name: save ami for netapp + set_fact: + netapp_ami: > + {{ amis.images | selectattr('name', 'defined') | sort(attribute='creation_date') | last }} + +- name: Create EC2 instances for netapp + ec2: + assign_public_ip: yes + key_name: "{{ ec2_name_prefix }}-key" + group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_info[rhel].size }}" + image: "{{ netapp_ami.image_id }}" + region: "{{ ec2_region }}" + exact_count: "{{ student_total }}" + count_tag: + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + wait: "{{ ec2_wait }}" + vpc_subnet_id: "{{ ec2_vpc_subnet_id }}" + volumes: + - device_name: /dev/sda1 + volume_type: gp2 + volume_size: "{{ ec2_info[rhel].disk_space }}" + delete_on_termination: true + register: netapp_output + +- name: Ensure tags are present for netapp_output + ec2_tag: + region: "{{ ec2_region }}" + resource: "{{item.1}}" + state: present + tags: + Name: "{{ ec2_name_prefix }}-student{{item.0 + 1}}-netapp" + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + Workshop: "{{ec2_name_prefix}}" + Index: "{{ item[0] }}" + Student: "student{{item.0 + 1}}" + AWS_USERNAME: "{{ linklight_user }}" + Info: "AWS_USERNAME that provisioned this-> {{ linklight_user }}" + Linklight: "This was provisioned through the linklight provisioner" + Students: "{{student_total}}" + short_name: "netapp" + username: "{{ec2_info[rhel].username}}" + with_indexed_items: + - "{{ netapp_output.instance_ids }}" + when: netapp_output.instance_ids is not none From a72284abb0e0fd6cc0d01f24284904e6b35b312f Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:01:10 -0400 Subject: [PATCH 08/50] syncing japanese test --- exercises/ansible_rhel/README.ja.md | 2 +- exercises/ansible_rhel/README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README.ja.md index 5c27e345c..a9ef76130 100644 --- a/exercises/ansible_rhel/README.ja.md +++ b/exercises/ansible_rhel/README.ja.md @@ -8,7 +8,7 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![uk](../../images/japan.png) 日本語](README.ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). ## プレゼンテーション資料 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 1a61d045f..6fe9e4115 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -8,7 +8,7 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). ## Presentations @@ -45,4 +45,3 @@ Also have a look at our Ansible Best Practices Deck: --- ![Red Hat Ansible Automation](../../images/rh-ansible-automation.png) - From d191942e953be9d1a5eec3e6a21d0c77e142c099 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:07:20 -0400 Subject: [PATCH 09/50] changing file names to match --- exercises/ansible_rhel/{README.ja.md => README_ja.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename exercises/ansible_rhel/{README.ja.md => README_ja.md} (100%) diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README_ja.md similarity index 100% rename from exercises/ansible_rhel/README.ja.md rename to exercises/ansible_rhel/README_ja.md From 955bf1fdc56bb6469488daa016fa95ec9b9e3f67 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:11:16 -0400 Subject: [PATCH 10/50] attempt two --- exercises/ansible_rhel/{README_ja.md => README.ja} | 2 +- exercises/ansible_rhel/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename exercises/ansible_rhel/{README_ja.md => README.ja} (99%) diff --git a/exercises/ansible_rhel/README_ja.md b/exercises/ansible_rhel/README.ja similarity index 99% rename from exercises/ansible_rhel/README_ja.md rename to exercises/ansible_rhel/README.ja index a9ef76130..d282bf91b 100644 --- a/exercises/ansible_rhel/README_ja.md +++ b/exercises/ansible_rhel/README.ja @@ -8,7 +8,7 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). ## プレゼンテーション資料 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 6fe9e4115..6a1b49fa5 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -8,7 +8,7 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). ## Presentations From 20fcd6f7fbbebd4433df976239487116adcb719e Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:19:05 -0400 Subject: [PATCH 11/50] Update _config.yml --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index c9506d02b..0c6980676 100644 --- a/_config.yml +++ b/_config.yml @@ -4,3 +4,4 @@ exclude: - "*.yaml" include: - "exercises/ansible_network/2-first-playbook/router_configs.yml" + - "*.ja" From e613daedef1ec670a83fb92fe876451bbdfb3414 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:30:32 -0400 Subject: [PATCH 12/50] multi attempts for japanese to render --- .../1.1-setup/{README.ja.md => README-ja.md} | 14 ++-- exercises/ansible_rhel/1.1-setup/README.md | 12 ++-- exercises/ansible_rhel/1.2-adhoc/README.md | 64 ++++++++++--------- .../{README.ja.md => japanREADME.md} | 63 +++++++++--------- exercises/ansible_rhel/1.3-playbook/README.md | 22 ++++--- .../{README.ja.md => japan_README.md} | 22 ++++--- 6 files changed, 104 insertions(+), 93 deletions(-) rename exercises/ansible_rhel/1.1-setup/{README.ja.md => README-ja.md} (94%) rename exercises/ansible_rhel/1.2-adhoc/{README.ja.md => japanREADME.md} (96%) rename exercises/ansible_rhel/1.3-playbook/{README.ja.md => japan_README.md} (98%) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README-ja.md similarity index 94% rename from exercises/ansible_rhel/1.1-setup/README.ja.md rename to exercises/ansible_rhel/1.1-setup/README-ja.md index f7f54670b..7b02dfef4 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README-ja.md @@ -1,5 +1,7 @@ # Exercise 1.1 - 要件を確認してみよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). + ## ラボ環境について このラボでは、事前設定されたラボ環境で作業します。 以下のホストにアクセスできます。 @@ -16,13 +18,13 @@ SSHでログインできます。: > **Warning** -> +> > **11.22.33.44** のような文字列を、個々に提供されているStudent情報に記載の **IP** などへ読み替えてください。 **X** は student**X** といった具合です. ssh studentX@11.22.33.44 > **Tip** -> +> > パスワードは **ansible** です。 rootになるには以下のように実行してください。: @@ -44,7 +46,7 @@ Ansibleが適切にInstallされているかを確認しましょう。 [...] > **Note** -> +> > Ansibleは構成管理を単純にしてくれます。 Ansibleはデータベースや実行用のデーモンを必要とせず、ラップトップでも簡単に実行できます。 管理対象ホストでは、実行用の常駐エージェントなども不要です。 rootアカウントからログアウトします。 @@ -53,7 +55,7 @@ rootアカウントからログアウトします。 logout > **Note** -> +> > 以降のすべての演習では、明示的な指示がない限り、コントロールノードのstudent\ ユーザーとして作業してください。 ## Step 1.2 - Working the Labs @@ -63,12 +65,12 @@ rootアカウントからログアウトします。 - すべて手で入力するのではなく、必要に応じてブラウザからコピー&ペーストしてください。しかし、考えたり理解したりするのをやめたりしないでください。 - すべてのラボは **Vim** を使って準備しましたが、みんながそれを愛しているわけではないことを理解しています。 **Midnight Commander** などを利用することができます。(**mc**を 実行すると実行できます。ファンクションキーはEsc-\でアクセスするかマウスでクリックすることでアクセスできます。)。または **Nano**(**nano**を実行)なども利用できます。 簡単な[editor intro]も用意してあります。(../ 0.0-support-docs / editor_intro.md) - + ## Step 1.3 - チャレンジLabs -このラボガイドの様々な章で「チャレンジラボ」セクションがあります。 +このラボガイドの様々な章で「チャレンジラボ」セクションがあります。 これらのラボは、これまでに学んだことを使って解決するための様々なタスクを用意しています。 それぞれのラボの解答案は、`Warning`サインより下に記述されています。 diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 9513e2baa..b916c3170 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,5 +1,7 @@ # Exercise 1.1 - Check the Prerequisites +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). + ## Your Lab Environment In this lab you work in a pre-configured lab environment. You will have access to the following hosts: @@ -16,13 +18,13 @@ In this lab you work in a pre-configured lab environment. You will have access t Login to your control host via SSH: > **Warning** -> +> > Replace **11.22.33.44** by your **IP** provided to you, and the **X** in student**X** by the student number provided to you. ssh studentX@11.22.33.44 > **Tip** -> +> > The password is **ansible** Then become root: @@ -44,7 +46,7 @@ Check Ansible has been installed correctly [...] > **Note** -> +> > Ansible is keeping configuration management simple. Ansible requires no database or running daemons and can run easily on a laptop. On the managed hosts it needs no running agent. Log out of the root account again: @@ -53,7 +55,7 @@ Log out of the root account again: logout > **Note** -> +> > In all subsequent exercises you should work as the student\ user on the control node if not explicitly told differently. ## Step 1.2 - Working the Labs @@ -65,7 +67,7 @@ You might have guessed by now this lab is pretty commandline-centric…​ :-) - All labs where prepared using **Vim**, but we understand not everybody loves it. Feel free to use alternative editors, in the lab environment we provide **Midnight Commander** (just run **mc**, function keys can be reached via Esc-\ or simply clicked with the mouse) or **Nano** (run **nano**). Here is a short [editor intro](../0.0-support-docs/editor_intro.md). > **Tip** -> +> > In the lab guide commands you are supposed to run are shown with or without the expected output, whatever makes more sense in the context. ## Step 1.3 - Challenge Labs diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index cffbaf1f8..870e24554 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Running Ad-hoc commands +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). + For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. ## Step 2.1 - Work with your Inventory @@ -45,7 +47,7 @@ An inventory file can contain a lot more information, it can organize your hosts AS you see it is ok to put systems in more than one group, for instance a server could be both a web server and a database server. Note that in Ansible the groups are not necessarily hierarchical. > **Tip** -> +> > The inventory can contain more data. E.g. if you have hosts that run on non-standard SSH ports you can put the port number after the hostname with a colon. Or you could define names specific to Ansible and have them point to the "real" IP or hostname. ## Step 2.2 - The Ansible Configuration Files @@ -53,7 +55,7 @@ AS you see it is ok to put systems in more than one group, for instance a server The behavior of Ansible can be customized by modifying settings in Ansible’s ini-style configuration file. Ansible will select its configuration file from one of several possible locations on the control node, please refer to the [documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html). > **Tip** -> +> > The recommended practice is to create an `ansible.cfg` file in the directory from which you run Ansible commands. This directory would also contain any files used by your Ansible project, such as the inventory and Playbooks. Another practice is to create a file `.ansible.cfg` in your home directory. In the lab environment provided to you an `.ansible.cfg` file has already been created and filled with the necessary details in the home directory of your `student` user on the control node: @@ -66,7 +68,7 @@ In the lab environment provided to you an `.ansible.cfg` file has already been c Output the content of the file: ```bash -[student@ansible ~]$ cat .ansible.cfg +[student@ansible ~]$ cat .ansible.cfg [defaults] stdout_callback = yaml connection = smart @@ -79,7 +81,7 @@ inventory = /home/student/lab_inventory/hosts There are multiple configuration flags provided. Most of them are not of interest here, but make sure to note the last line: there the location of the inventory is provided. That is the way Ansible knew in the previous commands what machines to connect to. -Output the content of your dedicated inventory to proof-read +Output the content of your dedicated inventory to proof-read ```bash [student@ansible ~]$ cat /home/student/lab_inventory/hosts @@ -98,19 +100,19 @@ ansible ansible_host=44.55.66.77 ``` > **Tip** -> +> > Note that each student has an individual lab environment. The ip addresses shown above are only an example, the ip addresses of your individual environment are different. As with the other cases, replace **\** with your actual student number. ## Step 2.3 - Ping a host > **Warning** -> +> > **Don’t forget to run the commands from the home directory of your student user, `/home/student`. That is where your `.ansible.cfg` file is located, without it Ansible will not know what which inventory to use.** Let's start with something really basic - pinging a host. To do that we use the Ansible `ping` module. The `ping` module makes sure our web hosts are responsive. Basically, it connects to the managed host, executes a small script there and collects the results. That way it is ensured that the managed host is reachable and that Ansible is able to execute commands properly on it. > **Tip** -> +> > Think of a module as a tool which is designed to accomplish a specific task. Ansible needs to know that it should use the `ping` module: The `-m` option defines which Ansible module to use. Options can be passed to the specified modul using the `-a` option. @@ -120,8 +122,8 @@ Ansible needs to know that it should use the `ping` module: The `-m` option defi node2 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" - }, - "changed": false, + }, + "changed": false, "ping": "pong" } [...] @@ -138,7 +140,7 @@ Ansible comes with a lot of modules by default. To list all modules run: ``` > **Tip** -> +> > In `ansible-doc` leave by pressing the button `q`. Use the `up`/`down` arrows to scroll through the content. To find a module try e.g.: @@ -154,7 +156,7 @@ Get help for a specific module including usage examples: ``` > **Tip** -> +> > Mandatory options are marked by a "=" in `ansible-doc`. ## Step 2.5 - Use the command module: @@ -181,7 +183,7 @@ Sometimes it’s desirable to have the output for a host on one line: ``` > **Tip** -> +> > Like many Linux commands, `ansible` allows for long-form options as well as short-form. For example `ansible web --module-name ping` is the same as running `ansible web -m ping`. We are going to be using the short-form options throughout this workshop. ## Step 2.6 - The copy module and permissions @@ -191,7 +193,7 @@ Using the `copy` module, execute an ad hoc command on `node1` to change the cont Run: > **Warning** -> +> > **Expect an error\!** ```bash @@ -214,7 +216,7 @@ The output of the ad hoc command is screaming **FAILED** in red at you. Why? Bec Now this is a case for privilege escalation and the reason `sudo` has to be setup properly. We need to instruct ansible to use `sudo` to run the command as root by using the parameter `-b` (think "become"). > **Tip** -> +> > Ansible will connect to the machines using your current user name (student\ in this case), just like SSH would. To override the remote user name, you could use the `-u` parameter. For us it’s okay to connect as `student` because `sudo` is set up. Change the command to use the `-b` parameter and run again: @@ -227,18 +229,18 @@ This time the command is a success: ```bash node1 | CHANGED => { - "changed": true, - "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", - "dest": "/etc/motd", - "gid": 0, - "group": "root", - "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", - "mode": "0644", - "owner": "root", - "secontext": "system_u:object_r:etc_t:s0", - "size": 19, - "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", - "state": "file", + "changed": true, + "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", + "dest": "/etc/motd", + "gid": 0, + "group": "root", + "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", + "mode": "0644", + "owner": "root", + "secontext": "system_u:object_r:etc_t:s0", + "size": 19, + "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", + "state": "file", "uid": 0 ``` @@ -257,25 +259,25 @@ Run the `ansible node1 -m copy …​` command from above again. Note: - The first line says `SUCCESS` instead of `CHANGED`. > **Tip** -> +> > This makes it a lot easier to spot changes and what Ansible actually did. ## Challenge Lab: Modules - Using `ansible-doc` - + - Find a module that uses Yum to manage software packages. - + - Look up the help examples for the module to learn how to install a package in the latest version. - Run an Ansible ad hoc command to install the package "screen" in the latest version on `node1`. > **Tip** -> +> > Use the copy ad hoc command from above as a template and change the module and options. > **Warning** -> +> > **Solution below\!** ```bash diff --git a/exercises/ansible_rhel/1.2-adhoc/README.ja.md b/exercises/ansible_rhel/1.2-adhoc/japanREADME.md similarity index 96% rename from exercises/ansible_rhel/1.2-adhoc/README.ja.md rename to exercises/ansible_rhel/1.2-adhoc/japanREADME.md index 355a90830..2bf8f67bd 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.ja.md +++ b/exercises/ansible_rhel/1.2-adhoc/japanREADME.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). + 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 1つか2つ程度のタスクをたくさんのリモートノードに実行する必要がある時などにとても便利なコマンドです。 @@ -60,7 +62,7 @@ ansible ansible_host=44.55.66.77 Ansibleでは、グループが常に階層的である必要は無いことに注意してください。 > **Tip** -> +> > インベントリには様々なデータを含めることができます。例えば、標準的では無いSSHポートで動作するホストがある場合には、ホスト名の後にコロンをつけて利用したいポート番号を入力できます。もしくは、Ansibleで利用する固有の名前を定義し、それらと実IPを紐付けることもできます。 ## Step 1.2.2 - Ansibleの設定ファイルについて @@ -70,7 +72,7 @@ Ansibleはコントロールノード上のいくつかの設定可能な場所 こちらの [documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html)を参考にしてみてください。 > **Tip** -> +> > Ansibleコマンドを実行するディレクトリに`ansible.cfg`ファイルを作成・配置することが推奨されるやり方です。このディレクトリには、インベントリやPlaybookなどみなさんのAnsibleプロジェクトで利用されるファイルも含まれます。他にも、ホームディレクトリに`.ansible.cfg`を作成するやり方もあります。 みなさんに提供されているラボ環境では、コントロールノードの`student `ホームディレクトリに、`ansible.cfg`が必要な詳細な情報が記載され、すでに作成済みです。 @@ -84,7 +86,7 @@ Ansibleはコントロールノード上のいくつかの設定可能な場所 ファイルの内容を出力します。 ```bash -[student@ansible ~]$ cat .ansible.cfg +[student@ansible ~]$ cat .ansible.cfg [defaults] stdout_callback = yaml connection = smart @@ -117,14 +119,14 @@ ansible ansible_host=44.55.66.77 ``` > **Tip** -> +> > 各受講者はそれぞれ個別のラボ環境を持っていることに注意してください。テキストの結果に表示されているIPアドレスは例であり実際のものではありません。みなさん個々の環境の実際のIPアドレスは異なります。 他の場合と同様に、**\**をStudent Numberに置き換えてください。 ## Step 1.2.3 - Ping a host > **Warning** -> +> > **みなさんのラボ環境では、ホームディレクトリ `/home/student`でコマンドを実行することを忘れないでください。 そこは、あなたの `.ansible.cfg`ファイルがあるところです。それなしでは、Ansibleはどのインベントリを使うべきかを知ることはできません。** 基本的なところから始めていきましょう - ホストへのpingです。 @@ -133,7 +135,7 @@ Ansibleの`ping`モジュールを使ってみましょう。 基本的には、管理対象ホストへ接続し、そこで小さなスクリプトを実行させ結果を収集する動作をします。このモジュールが実行できれば、管理対象ホストに到達可能で、Ansibleが対象ホスト上でコマンドを正しく実行できることが確認できています。 > **Tip** -> +> > 特定のタスクを実行するために設計されたツールがモジュールだと考えてみてください。 Ansibleでは`ping`モジュールを使うべきです。`-m`オプションを用いてどのAnsibleモジュールを利用するかを定義します。`-a`を使うことで特定の文字列をオプションとしてモジュールに渡すこともできます。 @@ -143,8 +145,8 @@ Ansibleでは`ping`モジュールを使うべきです。`-m`オプションを node2 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" - }, - "changed": false, + }, + "changed": false, "ping": "pong" } [...] @@ -161,7 +163,7 @@ Ansibleにはたくさんのモジュールが準備されています。全て ``` > **Tip** -> +> > `ansible-doc` では、 `q` を押して終了してください。. `up`/`down`を用いることで、コンテンツをスクロールすることができます。 モジュールを探したい時には、次のようにしてみてください。: @@ -177,7 +179,7 @@ Ansibleにはたくさんのモジュールが準備されています。全て ``` > **Tip** -> +> > 必須のオプションは、`ansible-doc`内では "=" で表現されます。 ## Step 1.2.5 - コマンドモジュールを使ってみよう。 @@ -206,7 +208,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ ``` > **Tip** -> +> > 多くのLinuxコマンドのように、`ansible`は短い形式のオプションだけでなく長い形式にも対応しています。 例えば、`ansible web --module-name ping`は、`ansible web -m ping`と同じ意味となります。 このワークショップでは、短縮系のオプションが用いられます。 ## Step 1.2.6 - Copyモジュールとパーミッション @@ -216,7 +218,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ 実行してみましょう: > **Warning** -> +> > **おそらく失敗するでしょう!** ```bash @@ -239,7 +241,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ これは、権限昇格(privilege escalation)が必要なケースであり、`sudo`が適切に設定されなければならない理由でもあります。`sudo`を用いてrootとしてコマンドを実行するために、`-b`のパラメータを用います。("become"と考えてください) > **Tip** -> +> > Ansibleは、SSHと同じように、現在のユーザ名(今回の場合にはstudent\)を用いて接続しに行きます。リモートユーザ名を上書きするには`-u`のパラメータを使います。 今回のラボでは、`sudo`がすでに設定済みなので`student` で接続されても問題ありません。`-b`のパラメータを使ってもう一度実行してみましょう。 @@ -251,18 +253,18 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ ```bash node1 | CHANGED => { - "changed": true, - "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", - "dest": "/etc/motd", - "gid": 0, - "group": "root", - "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", - "mode": "0644", - "owner": "root", - "secontext": "system_u:object_r:etc_t:s0", - "size": 19, - "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", - "state": "file", + "changed": true, + "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", + "dest": "/etc/motd", + "gid": 0, + "group": "root", + "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", + "mode": "0644", + "owner": "root", + "secontext": "system_u:object_r:etc_t:s0", + "size": 19, + "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", + "state": "file", "uid": 0 ``` @@ -280,25 +282,25 @@ Managed by Ansible - 最初の行が、`SUCCESS` から `CHANGED`に変わったはずです。 > **Tip** -> +> > これにより、どこが変更されて、Ansibleがなにをやったのかをとても簡単に見つけることができるようになります。 ## チャレンジラボ: Modules - `ansible-doc`を利用します。 - + - ソフトウェアパッケージを管理するために、Yumを利用できるモジュールを見つけてください。 - + - 最新バージョンのパッケージをインストールするためにはどうすれば良いのかをヘルプの例から探してみてください。 - Ansibleのアドホックコマンドを実行して、`node1`に`screen`の最新パッケージをインストールしてみてください。 > **Tip** -> +> > copyモジュールで実行したアドホックコマンドを参考にして、モジュールとオプションを変更すると良いでしょう。 > **Warning** -> +> > **以下は答えです\!** ```bash @@ -310,4 +312,3 @@ Managed by Ansible ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index 8f1cd971f..817e0ccaa 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - Writing Your First Playbook +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). + While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. Playbooks are files which describe the desired configurations or steps to implement on managed hosts. Playbooks can change lengthy, complex administrative tasks into easily repeatable routines with predictable and successful outcomes. @@ -9,7 +11,7 @@ A playbook is where you can take some of those ad-hoc commands you just ran and A playbook can have multiple plays and a play can have one or multiple tasks. In a task a *module* is called, like the modules in the previous chapter. The goal of a *play* is to map a group of hosts. The goal of a *task* is to implement modules against those hosts. > **Tip** -> +> > Here is a nice analogy: When Ansible modules are the tools in your workshop, the inventory is the materials and the Playbooks are the instructions. ## Step 3.1 - Playbook Basics @@ -29,13 +31,13 @@ There are some important concepts: - **become**: privilege escalation in Playbooks, same as using `-b` in the ad hoc command. > **Warning** -> +> > The ordering of the contents within a Playbook is important, because Ansible executes plays and tasks in the order they are presented. A Playbook should be **idempotent**, so if a Playbook is run once to put the hosts in the correct state, it should be safe to run it a second time and it should make no further changes to the hosts. > **Tip** -> +> > Most Ansible modules are idempotent, so it is relatively easy to ensure this is true. @@ -80,7 +82,7 @@ This shows one of Ansible’s strenghts: The Playbook syntax is easy to read and - We enable user privilege escalation with `become:`. > **Tip** -> +> > You obviously need to use privilege escalation to install a package or run any other task that requires root permissions. This is done in the Playbook by `become: yes`. Now that we've defined the play, let's add a task to get something done. We will add a task in which yum will ensure that the Apache package is installed in the latest version. Modify the file so that it looks like the following listing: @@ -97,19 +99,19 @@ Now that we've defined the play, let's add a task to get something done. We will state: latest ``` > **Tip** -> +> > Since playbooks are written in YAML, alignment of the lines and keywords is crucial. Make sure to vertically align the *t* in `task` with the *b* in `become`. Once you are more familiar with Ansible, make sure to take some time and study a bit the [YAML Syntax](http://docs.ansible.com/ansible/YAMLSyntax.html). In the added lines: - We started the tasks part with the keyword `tasks:`. - + - A task is named and the a module for the task is referenced. Here it uses the module "yum". - Parameters for the module are added: `name:` to identify the package name, and `state:` to define the wanted state of the package. > **Tip** -> +> > The module parameters are individual to each module. If in doubt, look them up again with `ansible-doc`. ## Step 3.3 - Running the Playbook @@ -133,7 +135,7 @@ Use SSH to make sure Apache has been installed on `node1`. The necessary IP addr [student@ansible ansible-files]$ grep node1 ~/lab_inventory/hosts node1 ansible_host=11.22.33.44 [student@ansible ansible-files]$ ssh 11.22.33.44 -student@11.22.33.44's password: +student@11.22.33.44's password: Last login: Wed May 15 14:03:45 2019 from 44.55.66.77 Managed by Ansible [student@node1 ~]$ rpm -qi httpd @@ -198,7 +200,7 @@ Note the output now: Some tasks are shown as "ok" in green and one is shown as " Check that the tasks were executed correctly and Apache is accepting connections: Make an HTTP request using Ansible’s `uri` module in an ad hoc command from the control node. Make sure to replace the **\** with the IP for the node from the inventory. > **Warning** -> +> > **Expect a lot of red lines and a 403 status\!** ```bash @@ -269,7 +271,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > The IP addresses shown here are just examples, your nodes will have different IP addresses. Change the Playbook to point to the group "web": diff --git a/exercises/ansible_rhel/1.3-playbook/README.ja.md b/exercises/ansible_rhel/1.3-playbook/japan_README.md similarity index 98% rename from exercises/ansible_rhel/1.3-playbook/README.ja.md rename to exercises/ansible_rhel/1.3-playbook/japan_README.md index 999735077..0fc3a2c7d 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.ja.md +++ b/exercises/ansible_rhel/1.3-playbook/japan_README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). + Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 Playbook(プレイブック)は、管理対象に対して実装したいこうなってほしいという構成や手順を記述したファイルです。Playbookを用いることで、長く複雑な管理タスクたちを、成功が予測される状態で、簡単にいつでも再現できるルーチンへと変えることができます。 @@ -27,13 +29,13 @@ PlaybookはYAML形式で書かれたテキストファイルです。 - **become**: アドホックコマンドで `-b` を用いるのと同様に、Playbook内で権限昇格させます。 > **Warning** -> +> > Ansibleはplayとtaskを表示されている順序で実行していくため、Playbook内のコンテンツの順序はとても重要です。 Playbookは**冪等性(べきとうせい。ある操作を1回行っても複数回行っても結果が同じになる性質)**を持っているべきです。一度、playbookを正しい状態にすべく実行されたのであれば、さらにもう一度playbookが実行された場合には安全であるべきです。そしてその際にはなんの変更もホストで発生するべきではありません。 > **Tip** -> +> > ほとんどのAnsibleモジュールはべき等性を持っているので、比較的簡単に正しいかどうかは確認できます。 ## Step 1.3.2 - ディレクトリの構成とPlaybook用のファイルを作成しよう @@ -84,7 +86,7 @@ Playbookの構造は、とても簡単で読みやすく、理解しやすいは - `become:`でユーザー権限の昇格を有効化しています。 > **Tip** -> +> > パッケージをインストールしたり、root権限を必要とする諸々のタスクを実行するには、いうまでもなく権限昇格が必要になります。これは、Playbookが`become: yes`であることで実行可能です。 Playの定義ができたので、何がしかのタスクを追加していきましょう。 @@ -103,19 +105,19 @@ Apacheのパッケージの最新版がインストールされていること state: latest ``` > **Tip** -> +> > PlaybookはYAMLで書かれているので、行とキーワードの位置関係は極めて重要です。`task`の *t*と、`become`の*b*が必ず縦に並ぶようによく確認してください。Ansibleに慣れてきたら、[YAML構文(YAML Syntax)](http://docs.ansible.com/ansible/YAMLSyntax.html)について少し時間をかけて勉強してみると良いでしょう。 追加された行は以下の通りです。: - Task箇所はキーワード`tasks`で始まっています。 - + - タスクには名前がつけられ、タスクのためのモジュールが参照されています。ここでは、"yum"モジュールが用いられています。 - モジュールに加えるパラメータが追加されました: `name: `はyumモジュールで管理されるパッケージの名称を指定しています。`state`はそのインストールされるパッケージの望ましい状態を定義しています。 - + > **Tip** -> +> > モジュールのパラメータは、それぞれのモジュールで固有なものです。よくわからない場合には、再度`ansible-doc`コマンドを用いて調べてみてください。 ## Step 1.3.3 - Playbookを実行してみる @@ -141,7 +143,7 @@ SSHを用いて`node1`でApacheが確かにインストールされているか [student@ansible ansible-files]$ grep node1 ~/lab_inventory/hosts node1 ansible_host=11.22.33.44 [student@ansible ansible-files]$ ssh 11.22.33.44 -student@11.22.33.44's password: +student@11.22.33.44's password: Last login: Wed May 15 14:03:45 2019 from 44.55.66.77 Managed by Ansible [student@node1 ~]$ rpm -qi httpd @@ -209,7 +211,7 @@ Playbookの次のパートでは、確かにApache Webserverが`node1`上で有 管理ノードから、Ad-hocコマンドでAnsibleの`uri`モジュールを使ってHTTPリクエストを実施します。 **\** を皆さんの環境のインベントリファイルのノード情報に置き換えて実行することに注意してください。 > **Warning** -> +> > **おそらく、たくさんの赤い文字列と403の文字が見えます\!** ```bash @@ -287,7 +289,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > 例示されているIPアドレスは単なる例であり、あなたのノードは異なるIPアドレスを持っているはずです。 Playbookをグループ`web`をさすように変更しましょう。 From 6d9ee6b54ae41fc4087885561b09c839f34f30fe Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 16:44:29 -0400 Subject: [PATCH 13/50] testing --- exercises/ansible_rhel/1.1-setup/{README-ja.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename exercises/ansible_rhel/1.1-setup/{README-ja.md => README.ja.md} (97%) diff --git a/exercises/ansible_rhel/1.1-setup/README-ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md similarity index 97% rename from exercises/ansible_rhel/1.1-setup/README-ja.md rename to exercises/ansible_rhel/1.1-setup/README.ja.md index 7b02dfef4..333a8c90a 100644 --- a/exercises/ansible_rhel/1.1-setup/README-ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index b916c3170..05854c094 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). ## Your Lab Environment From c95e26a4127b304f22f21b0282e39a17eab46ada Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 16:46:40 -0400 Subject: [PATCH 14/50] bad k for j --- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 05854c094..33e2b3c33 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ja). ## Your Lab Environment From 17f52069a9f7ae5582b1202092dc75e140400058 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 12:50:03 -0400 Subject: [PATCH 15/50] trying fix --- exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index 333a8c90a..c9a97aeee 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 33e2b3c33..c26e6cade 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). ## Your Lab Environment From 01dc86a6f5a1ef24395b93b856fc3de0b2a7fb1e Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:06:16 -0400 Subject: [PATCH 16/50] fixing japanese support --- _config.yml | 6 ----- exercises/ansible_f5/1.0-explore/README.ja.md | 2 ++ exercises/ansible_f5/1.0-explore/README.md | 2 ++ .../ansible_f5/1.1-get-facts/README.ja.md | 4 ++- exercises/ansible_f5/1.1-get-facts/README.md | 2 ++ .../ansible_f5/1.2-add-node/README.ja.md | 10 ++++--- exercises/ansible_f5/1.2-add-node/README.md | 2 ++ .../ansible_f5/1.3-add-pool/README.ja.md | 6 +++-- exercises/ansible_f5/1.3-add-pool/README.md | 2 ++ .../1.4-add-pool-members/README.ja.md | 6 +++-- .../ansible_f5/1.4-add-pool-members/README.md | 2 ++ .../1.5-add-virtual-server/README.ja.md | 10 ++++--- .../1.5-add-virtual-server/README.md | 2 ++ .../ansible_f5/1.6-add-irules/README.ja.md | 8 +++--- exercises/ansible_f5/1.6-add-irules/README.md | 2 ++ .../1.7-save-running-config/README.ja.md | 2 ++ .../1.7-save-running-config/README.md | 2 ++ .../2.0-disable-pool-member/README.ja.md | 4 ++- .../2.0-disable-pool-member/README.md | 2 ++ .../2.1-delete-configuration/README.ja.md | 2 ++ .../2.1-delete-configuration/README.md | 2 ++ .../2.2-error-handling/README.ja.md | 16 +++++++----- .../ansible_f5/2.2-error-handling/README.md | 2 ++ .../ansible_f5/3.0-as3-intro/README.ja.md | 2 ++ exercises/ansible_f5/3.0-as3-intro/README.md | 2 ++ .../ansible_f5/3.1-as3-change/README.ja.md | 2 ++ exercises/ansible_f5/3.1-as3-change/README.md | 2 ++ .../ansible_f5/3.2-as3-delete/README.ja.md | 2 ++ exercises/ansible_f5/3.2-as3-delete/README.md | 2 ++ exercises/ansible_f5/README.ja.md | 2 ++ exercises/ansible_f5/README.md | 2 ++ .../1-explore/{README_ja.md => README.ja.md} | 2 ++ exercises/ansible_network/1-explore/README.md | 2 ++ .../{README_ja.md => README.ja.md} | 2 ++ .../2-first-playbook/README.md | 2 ++ .../3-facts/{README_ja.md => README.ja.md} | 2 ++ exercises/ansible_network/3-facts/README.md | 2 ++ exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- .../{japanREADME.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.2-adhoc/README.md | 2 +- .../{japan_README.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.3-playbook/README.md | 2 +- .../ansible_rhel/1.4-variables/README.ja.md | 26 ++++++++++--------- .../ansible_rhel/1.4-variables/README.md | 24 +++++++++-------- .../ansible_rhel/1.5-handlers/README.ja.md | 21 ++++++++------- exercises/ansible_rhel/1.5-handlers/README.md | 2 ++ .../ansible_rhel/1.6-templates/README.ja.md | 7 ++--- .../ansible_rhel/1.6-templates/README.md | 6 +++-- exercises/ansible_rhel/1.7-role/README.ja.md | 4 ++- exercises/ansible_rhel/1.7-role/README.md | 2 ++ exercises/ansible_rhel/1.8-bonus/README.ja.md | 13 +++++----- exercises/ansible_rhel/1.8-bonus/README.md | 12 +++++---- .../ansible_rhel/{README.ja => README.ja.md} | 2 ++ exercises/ansible_rhel/README.md | 2 ++ 54 files changed, 172 insertions(+), 85 deletions(-) rename exercises/ansible_network/1-explore/{README_ja.md => README.ja.md} (97%) rename exercises/ansible_network/2-first-playbook/{README_ja.md => README.ja.md} (98%) rename exercises/ansible_network/3-facts/{README_ja.md => README.ja.md} (98%) rename exercises/ansible_rhel/1.2-adhoc/{japanREADME.md => README.ja.md} (99%) rename exercises/ansible_rhel/1.3-playbook/{japan_README.md => README.ja.md} (99%) rename exercises/ansible_rhel/{README.ja => README.ja.md} (94%) diff --git a/_config.yml b/_config.yml index 0c6980676..346aef9d8 100644 --- a/_config.yml +++ b/_config.yml @@ -1,7 +1 @@ theme: jekyll-theme-dinky -exclude: - - "*.yml" - - "*.yaml" -include: - - "exercises/ansible_network/2-first-playbook/router_configs.yml" - - "*.ja" diff --git a/exercises/ansible_f5/1.0-explore/README.ja.md b/exercises/ansible_f5/1.0-explore/README.ja.md index b107c522c..cf36a127c 100644 --- a/exercises/ansible_f5/1.0-explore/README.ja.md +++ b/exercises/ansible_f5/1.0-explore/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.0 - 演習環境の確認 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 演習を開始する前にぜひ Ansible Slack へ参加してください!(任意) - [クリックして ansiblejp slack (日本語) へ参加](https://bit.ly/slack-ansiblejp) diff --git a/exercises/ansible_f5/1.0-explore/README.md b/exercises/ansible_f5/1.0-explore/README.md index 7bdb98039..a7e7f8f6a 100644 --- a/exercises/ansible_f5/1.0-explore/README.md +++ b/exercises/ansible_f5/1.0-explore/README.md @@ -1,5 +1,7 @@ ### Exercise 1.0: Exploring the lab environment +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Before you get started, please join us on slack! [Click here to join the ansiblenetwork slack](https://join.slack.com/t/ansiblenetwork/shared_invite/enQtMzEyMTcxMTE5NjM3LWIyMmQ4YzNhYTA4MjA2OTRhZDQzMTZkNWZlN2E3NzhhMWQ5ZTdmNmViNjk2M2JkYzJjODhjMjVjMGUxZjc2MWE). This will allow you to chat with other network automation engineers and get help after the workshops concludes. #### Step 1 diff --git a/exercises/ansible_f5/1.1-get-facts/README.ja.md b/exercises/ansible_f5/1.1-get-facts/README.ja.md index c39a25adc..0e2e86b38 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.ja.md +++ b/exercises/ansible_f5/1.1-get-facts/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.1 - Ansible による F5 BIG-IP の情報収集 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -90,7 +92,7 @@ Ansible の playbook は **YAML** ファイルです。YAML は構造化され ## Step 4 -次に2つ目の `task` を追加します。 このタスクでは `debug` モジュールを使って、register +次に2つ目の `task` を追加します。 このタスクでは `debug` モジュールを使って、register された `bigip_device_facts variable` 変数の値を出力します。 {% raw %} diff --git a/exercises/ansible_f5/1.1-get-facts/README.md b/exercises/ansible_f5/1.1-get-facts/README.md index 92eec11ab..1fd0ed2cc 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.md +++ b/exercises/ansible_f5/1.1-get-facts/README.md @@ -1,5 +1,7 @@ # Exercise 1.1: Using the bigip_device_facts module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.2-add-node/README.ja.md b/exercises/ansible_f5/1.2-add-node/README.ja.md index 66d775907..2516d8a06 100644 --- a/exercises/ansible_f5/1.2-add-node/README.ja.md +++ b/exercises/ansible_f5/1.2-add-node/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.2 - ノードの追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -25,7 +27,7 @@ ## Step 2: -以下の定義を `bigip-node.yml` に入力します : +以下の定義を `bigip-node.yml` に入力します : ``` yaml --- @@ -73,12 +75,12 @@ - `name: CREATE NODES` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_node:` : 使用するモジュールを宣言しています。 `loop` を除く全てのものは、モジュールのドキュメント上で定義されている、モジュールパラメータです。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `host: "{{hostvars[item].ansible_host}}"` : モジュールへインベントリに登録済みのWebサーバーのIPアドレスを追加します。 -- `name: "{{hostvars[item].inventory_hostname}}"` : `inventory_hostname` をホスト名(host1、host2 となります)として使うことを指示します。 +- `name: "{{hostvars[item].inventory_hostname}}"` : `inventory_hostname` をホスト名(host1、host2 となります)として使うことを指示します。 - `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 - `loop:` : 与えられた一覧に対してタスクをループ実行することを指定します。この演習では、二つのRHELホストを含む webservers グループが一覧となります。 diff --git a/exercises/ansible_f5/1.2-add-node/README.md b/exercises/ansible_f5/1.2-add-node/README.md index a09b0a802..d820bdd48 100644 --- a/exercises/ansible_f5/1.2-add-node/README.md +++ b/exercises/ansible_f5/1.2-add-node/README.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Adding nodes to F5 BIG-IP +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.3-add-pool/README.ja.md b/exercises/ansible_f5/1.3-add-pool/README.ja.md index f7ccbd7ac..3e080bc43 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.ja.md +++ b/exercises/ansible_f5/1.3-add-pool/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.3 - プールの追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -71,9 +73,9 @@ - `name: CREATE POOL` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_pool:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `name: "http_pool"` : 作成するプールの名前を指定します。 - `lb_method: "round-robin"` : 負荷分散方式を round-robin に指定します。全ての設定可能な負荷分散方式は bigip_pool モジュールのドキュメンテーションで確認できます。 diff --git a/exercises/ansible_f5/1.3-add-pool/README.md b/exercises/ansible_f5/1.3-add-pool/README.md index 736ade7ce..67cb39ef3 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.md +++ b/exercises/ansible_f5/1.3-add-pool/README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - Adding a load balancing pool +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md index cdde72811..0033998fd 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.4 - メンバーをプールへ追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -25,7 +27,7 @@ ## Step 2: -`bigip-pool-members.yml` へ、以下のプレイブック定義を記述します : +`bigip-pool-members.yml` へ、以下のプレイブック定義を記述します : ``` yaml --- @@ -72,7 +74,7 @@ - `name: ADD POOL MEMBERS` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_pool_member:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 - `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.md b/exercises/ansible_f5/1.4-add-pool-members/README.md index 3fddbde07..f7dcb7c32 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.md @@ -1,5 +1,7 @@ # Exercise 1.4: Adding members to a pool on F5 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md index eb9a47e31..3cb2030d3 100644 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.5 - Virtual Server の追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -27,7 +29,7 @@ Ansible のプレイブックは **YAML** 形式のファイルです。YAMLは構造化されたフォーマットで、非常に読み易いものです。 -以下の定義を `bigip-virtual-server.yml` に入力します : +以下の定義を `bigip-virtual-server.yml` に入力します : ``` yaml --- @@ -74,13 +76,13 @@ Ansible のプレイブックは **YAML** 形式のファイルです。YAMLは {% endraw %} ->プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 +>プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 - `name: ADD VIRTUAL SERVER` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_virtual_server:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `name: "vip"` : vip という名前のVirtual Server を作成することを指定します。 - `destination"` : Virtual Server にIPアドレスを指定します。 diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.md b/exercises/ansible_f5/1.5-add-virtual-server/README.md index 180a739f9..1eb223f77 100755 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.md @@ -1,5 +1,7 @@ # Exercise 1.5: Using the bigip_virtual_server module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.6-add-irules/README.ja.md b/exercises/ansible_f5/1.6-add-irules/README.ja.md index d59608ece..d78f97f1b 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.ja.md +++ b/exercises/ansible_f5/1.6-add-irules/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.6 - iRules の追加と Virtual Server へのアタッチ +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -97,19 +99,19 @@ when HTTP_REQUEST { ``` {% endraw %} ->プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 +>プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 - 変数 `'irules'` : 2つのiRules(つまり、'irule1'と'irule2')を設定します。 - `name: ADD iRules` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_irule:` : 使用するモジュールを宣言しています。 - `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `module: ltm` : iRulesがBIG-IPのどの機能で使用するかを指定します。本演習では ltm を指定します。 - `name: "{{item}}"` : 'irule1'と 'irule2' という名前の iRules を登録することを指定します。 - `content: "{{lookup('file','{{item}}')}}" ` : [lookup plugin](https://docs.ansible.com/ansible/latest/plugins/lookup.html)を使って、iRulesに追加するコンテンツを指定します。 -- `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 +- `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 - `loop:` 与えられた iRules のリストに対してタスクを実行するように指定します。 ## Step 5 diff --git a/exercises/ansible_f5/1.6-add-irules/README.md b/exercises/ansible_f5/1.6-add-irules/README.md index 6b4ce3b53..4cf23aba7 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.md +++ b/exercises/ansible_f5/1.6-add-irules/README.md @@ -1,5 +1,7 @@ # Exercise 1.6: Using the bigip_irule module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.7-save-running-config/README.ja.md b/exercises/ansible_f5/1.7-save-running-config/README.ja.md index 3922b2f53..29340b5b9 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.ja.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.7 - コンフィグの保存 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/1.7-save-running-config/README.md b/exercises/ansible_f5/1.7-save-running-config/README.md index 61adc188e..8188306f4 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.md @@ -1,5 +1,7 @@ # Exercise 1.7: Using the bigip_config module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md index 2c4dcd1f7..f5cc0ce01 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.0 - プールメンバーの無効化 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -137,7 +139,7 @@ HINT: Playbook 内で動的に各ファクト情報を簡易設定する方法 ヒント: when による条件分岐とループ と [BIG-IP pool member module](https://docs.ansible.com/ansible/latest/modules/bigip_pool_member_module.html)を参照してください。 - + ## Step 10 Playbook の実行 - コントロールホストへ戻り、以下のコマンドを実行します: diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.md b/exercises/ansible_f5/2.0-disable-pool-member/README.md index e852a99ba..a36aed323 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.md @@ -1,5 +1,7 @@ # Exercise 2.0 - Disabling a pool member +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md index cde3e06bf..297a12838 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.1 - モジュールの組み合わせを使用してBIG-IPの構成を削除する +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.md b/exercises/ansible_f5/2.1-delete-configuration/README.md index b49d1b4f7..9fe813689 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.md @@ -1,5 +1,7 @@ # Exercise 2.1: Using a combination of modules to delete configuration on the BIG-IP +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.2-error-handling/README.ja.md b/exercises/ansible_f5/2.2-error-handling/README.ja.md index 38d6602db..9d59cfcce 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.ja.md +++ b/exercises/ansible_f5/2.2-error-handling/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.2 - モジュールの組み合わせを使用して適切なロールバックを実行する +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -36,7 +38,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ hosts: lb connection: local gather_facts: no - + ``` {% endraw %} @@ -90,7 +92,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -124,7 +126,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -165,7 +167,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -216,7 +218,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -278,7 +280,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -360,7 +362,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES diff --git a/exercises/ansible_f5/2.2-error-handling/README.md b/exercises/ansible_f5/2.2-error-handling/README.md index 81b15cfbf..32e742aa5 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.md +++ b/exercises/ansible_f5/2.2-error-handling/README.md @@ -1,5 +1,7 @@ # Exercise 2.2: Using a combination of modules to perform a graceful rollback +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.0-as3-intro/README.ja.md b/exercises/ansible_f5/3.0-as3-intro/README.ja.md index 9ba63eaa4..34bb1f351 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.ja.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.0 - AS3の概要 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.0-as3-intro/README.md b/exercises/ansible_f5/3.0-as3-intro/README.md index f200397a8..bfd0c0142 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.md @@ -1,5 +1,7 @@ # Exercise 3.0 - Introduction to AS3 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.1-as3-change/README.ja.md b/exercises/ansible_f5/3.1-as3-change/README.ja.md index d7373e3ce..89f8d649e 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.ja.md +++ b/exercises/ansible_f5/3.1-as3-change/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.1 - AS3 による変更運用 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.1-as3-change/README.md b/exercises/ansible_f5/3.1-as3-change/README.md index ded3a4313..727aa68a5 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.md +++ b/exercises/ansible_f5/3.1-as3-change/README.md @@ -1,5 +1,7 @@ # Exercise 3.1 - Operational Change with AS3 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.2-as3-delete/README.ja.md b/exercises/ansible_f5/3.2-as3-delete/README.ja.md index 965d38f19..f1ce31502 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.ja.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.2 - Web アプリケーションの削除 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.2-as3-delete/README.md b/exercises/ansible_f5/3.2-as3-delete/README.md index 5a17bec22..00b7377ff 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.md @@ -1,5 +1,7 @@ # Exercise 3.2 - Deleting a Web Application +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index 8e8046a44..2410805de 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,6 +4,8 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Presentation プレゼンテーション資料はこちらです: [Ansible F5 Workshop Deck](../../decks/ansible_f5.pdf) diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 94b6ac2ed..4fd350c68 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,6 +4,8 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Presentation Want the Presentation Deck? Its right here: [Ansible F5 Workshop Deck](../../decks/ansible_f5.pdf) diff --git a/exercises/ansible_network/1-explore/README_ja.md b/exercises/ansible_network/1-explore/README.ja.md similarity index 97% rename from exercises/ansible_network/1-explore/README_ja.md rename to exercises/ansible_network/1-explore/README.ja.md index f42b0598e..96f8e5ce8 100644 --- a/exercises/ansible_network/1-explore/README_ja.md +++ b/exercises/ansible_network/1-explore/README.ja.md @@ -1,5 +1,7 @@ # Exercise 1.0 - Anisbleのlab環境を確認してみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ラボを開始する前に、ぜひSlackに参加してみましょう! 今後のAnsibleの学習に役立つはずです。 ここでは日本のAnsibleユーザ会と2つのSlackチャンネルを紹介します。 diff --git a/exercises/ansible_network/1-explore/README.md b/exercises/ansible_network/1-explore/README.md index 40956972b..3417b8092 100644 --- a/exercises/ansible_network/1-explore/README.md +++ b/exercises/ansible_network/1-explore/README.md @@ -1,5 +1,7 @@ # Exercise 1 - Exploring the lab environment +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_network/2-first-playbook/README_ja.md b/exercises/ansible_network/2-first-playbook/README.ja.md similarity index 98% rename from exercises/ansible_network/2-first-playbook/README_ja.md rename to exercises/ansible_network/2-first-playbook/README.ja.md index df95d4c2e..1ad289fe4 100644 --- a/exercises/ansible_network/2-first-playbook/README_ja.md +++ b/exercises/ansible_network/2-first-playbook/README.ja.md @@ -1,5 +1,7 @@ # Exercise 2.0 - Routerのコンフィグを更新してみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansibleを用いて、ルータのコンフィグを更新することができます。 コンフィグファイルを機器へPushする方法や、コンフィグレーションを1列ごとにPushすることもできます。 diff --git a/exercises/ansible_network/2-first-playbook/README.md b/exercises/ansible_network/2-first-playbook/README.md index dde68225f..86d46b4f9 100644 --- a/exercises/ansible_network/2-first-playbook/README.md +++ b/exercises/ansible_network/2-first-playbook/README.md @@ -1,5 +1,7 @@ # Exercise 2 - First Ansible Playbook +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_network/3-facts/README_ja.md b/exercises/ansible_network/3-facts/README.ja.md similarity index 98% rename from exercises/ansible_network/3-facts/README_ja.md rename to exercises/ansible_network/3-facts/README.ja.md index 63bcc21f8..4a70f0aca 100644 --- a/exercises/ansible_network/3-facts/README_ja.md +++ b/exercises/ansible_network/3-facts/README.ja.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Moduleのドキュメントの確認方法、 出力結果の登録方法、 tagの使い方 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 前のセクションでは、`ios_facts` と `debug` の使い方を学びました。 `debug` モジュールの使い方では、 `msg` と呼ばれるパラメータを設定しましたが、`ios_facts`モジュールについては特にそのようなものを設定しませんでした。 これらのモジュールに設定できるパラメータについて知りたいと思った場合、どうすれば良いでしょうか? diff --git a/exercises/ansible_network/3-facts/README.md b/exercises/ansible_network/3-facts/README.md index 08c44b479..d2dcada87 100644 --- a/exercises/ansible_network/3-facts/README.md +++ b/exercises/ansible_network/3-facts/README.md @@ -1,5 +1,7 @@ # Exercise 3: Ansible Facts +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index c9a97aeee..0011876a0 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.2-adhoc/japanREADME.md b/exercises/ansible_rhel/1.2-adhoc/README.ja.md similarity index 99% rename from exercises/ansible_rhel/1.2-adhoc/japanREADME.md rename to exercises/ansible_rhel/1.2-adhoc/README.ja.md index 2bf8f67bd..28e379e0e 100644 --- a/exercises/ansible_rhel/1.2-adhoc/japanREADME.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index 870e24554..069a533a3 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Running Ad-hoc commands -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. diff --git a/exercises/ansible_rhel/1.3-playbook/japan_README.md b/exercises/ansible_rhel/1.3-playbook/README.ja.md similarity index 99% rename from exercises/ansible_rhel/1.3-playbook/japan_README.md rename to exercises/ansible_rhel/1.3-playbook/README.ja.md index 0fc3a2c7d..e9243a30f 100644 --- a/exercises/ansible_rhel/1.3-playbook/japan_README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index 817e0ccaa..cc1e40087 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Writing Your First Playbook -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. diff --git a/exercises/ansible_rhel/1.4-variables/README.ja.md b/exercises/ansible_rhel/1.4-variables/README.ja.md index e3e146f5e..52b790244 100644 --- a/exercises/ansible_rhel/1.4-variables/README.ja.md +++ b/exercises/ansible_rhel/1.4-variables/README.ja.md @@ -1,5 +1,7 @@ # 演習1.4 - 変数を使ってみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 前回までは Ansible Engine の基礎部分を学習してきました。この演習では Playbook をより柔軟かつパワフルに使用できる、より高度なスキルを学びます。 Ansible では task をよりシンプル、かつ再利用可能にできます。システムの設定にはユニークな設定が含まれる場合があり、 @@ -25,7 +27,7 @@ Playbook では、変数名を二重中括弧で囲むことで変数を表現 > **ヒント** -> +> > ホスト変数には優先順位があります。上記 Host 変数は、 Group 変数より優先されます。詳しくは製品マニュアルをご確認ください。 ## ステップ 1.4.1 - 変数ファイルの作成 @@ -59,7 +61,7 @@ stage: prod - `web` group のすべてのサーバーに対して、変数 `stage` に値 `dev` が定義されます。そして dev (開発)をデフォルト値として定義します。 - - `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。 + - `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。 ## ステップ 1.4.2 - index.html ファイルの作成 @@ -88,7 +90,7 @@ stage: prod `deploy_index_html.yml` という名前の Playbook を `~/ansible-files/` ディレクトリ内に作成します。 > **ヒント** -> +> > コピーするファイル名の中に指定された変数 "stage" がホストごとに取る値に注意してください。 @@ -135,7 +137,7 @@ node3 ansible_host=33.44.55.66 ``` > **ヒント** -> +> > 鋭い人はちょっと思うかもしれません、”もっと柔軟にファイルの中身を変更出来たら・・・、と”。こちらについては次の章(template モジュール)で学びます! ## ステップ 1.4.5 - Ansible ファクト @@ -164,10 +166,10 @@ Ansibleがデフォルトでどのような事実を収集しているのか、 - 管理対象ホストのディストリビューション(Red Hat)を表示してください。ただし、結果は一行で出力してください。 > **ヒント** -> +> > grep を使ってファクトの中から必要な情報を探してみます。次に、 filter を使ってこのファクトのみの情報を抽出してみましょう。一行での表示の方法は ansible コマンドの -h (help) を使って調べてみましょう! - + > **答えは下記の通り\!** ```bash @@ -192,13 +194,13 @@ Ansibleがデフォルトでどのような事実を収集しているのか、 > **ヒント** -> +> > "debug" モジュールは変数や式を確認するのに有用です。 取得されたファクトがどのような形で表示されるか Playbook を実行してみてください。 ```bash -[student@ansible ansible-files]$ ansible-playbook facts.yml +[student@ansible ansible-files]$ ansible-playbook facts.yml PLAY [Output facts within a playbook] ****************************************** @@ -209,13 +211,13 @@ ok: [node1] ok: [ansible] TASK [Prints Ansible facts] **************************************************** -ok: [node1] => +ok: [node1] => msg: The default IPv4 address of node1 is 172.16.190.143 -ok: [node2] => +ok: [node2] => msg: The default IPv4 address of node2 is 172.16.30.170 -ok: [node3] => +ok: [node3] => msg: The default IPv4 address of node3 is 172.16.140.196 -ok: [ansible] => +ok: [ansible] => msg: The default IPv4 address of ansible is 172.16.2.10 PLAY RECAP ********************************************************************* diff --git a/exercises/ansible_rhel/1.4-variables/README.md b/exercises/ansible_rhel/1.4-variables/README.md index e01f6a8e6..fcca23a35 100644 --- a/exercises/ansible_rhel/1.4-variables/README.md +++ b/exercises/ansible_rhel/1.4-variables/README.md @@ -1,5 +1,7 @@ # Exercise 1.4 - Using Variables +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Previous exercises showed you the basics of Ansible Engine. In the next few exercises, we are going to teach some more advanced ansible skills that will add flexibility and power to your playbooks. @@ -25,7 +27,7 @@ The recommended practice to provide variables in the inventory is to define them - To define variables specifically for a host `node1`, the file `host_vars/node1` with the variable definitions is created. > **Tip** -> +> > Host variables take precedence over group variables (more about precedence can be found in the docs). ## Step 4.1 - Create Variable Files @@ -87,7 +89,7 @@ Now you need a Playbook that copies the prod or dev `index.html` file - accordin Create a new Playbook called `deploy_index_html.yml` in the `~/ansible-files/` directory. > **Tip** -> +> > Note how the variable "stage" is used in the name of the file to copy. @@ -134,7 +136,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > If by now you think: There has to be a smarter way to change content in files…​ you are absolutely right. This lab was done to introduce variables, you are about to learn about templates in one of the next chapters. ## Step 4.5 - Ansible Facts @@ -163,11 +165,11 @@ Or what about only looking for memory related facts: - Try to find and print the distribution (Red Hat) of your managed hosts. On one line, please. > **Tip** -> +> > Use grep to find the fact, then apply a filter to only print this fact. > **Warning** -> +> > **Solution below\!** ```bash @@ -192,13 +194,13 @@ Facts can be used in a Playbook like variables, using the proper naming, of cour > **Tip** -> +> > The "debug" module is handy for e.g. debugging variables or expressions. Execute it to see how the facts are printed: ```bash -[student@ansible ansible-files]$ ansible-playbook facts.yml +[student@ansible ansible-files]$ ansible-playbook facts.yml PLAY [Output facts within a playbook] ****************************************** @@ -209,13 +211,13 @@ ok: [node1] ok: [ansible] TASK [Prints Ansible facts] **************************************************** -ok: [node1] => +ok: [node1] => msg: The default IPv4 address of node1 is 172.16.190.143 -ok: [node2] => +ok: [node2] => msg: The default IPv4 address of node2 is 172.16.30.170 -ok: [node3] => +ok: [node3] => msg: The default IPv4 address of node3 is 172.16.140.196 -ok: [ansible] => +ok: [ansible] => msg: The default IPv4 address of ansible is 172.16.2.10 PLAY RECAP ********************************************************************* diff --git a/exercises/ansible_rhel/1.5-handlers/README.ja.md b/exercises/ansible_rhel/1.5-handlers/README.ja.md index 65d082540..0d2a93cbe 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.ja.md +++ b/exercises/ansible_rhel/1.5-handlers/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.5 - 条件分岐, ハンドラー、ループ実行 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## ステップ 1.5.1 - 条件分岐 Ansible は特定の条件が満たされたときにタスクを実行したり再生したりすることができます。 @@ -25,7 +27,7 @@ Ansible は特定の条件が満たされたときにタスクを実行したり では早速やってみましょう。まず、デフォルトで指定されたインベントリファイル編集し、`ftpserver` グループに `node2` を入れます。 デフォルトのインベントリファイルは、 `/home/student/lightbulb/lessons/lab_inventory/student-instances.txt` でしたね。♪ - + 編集後は以下の様になります。node2 のIPアドレスはご自身ものを入力してください! ```ini @@ -62,7 +64,7 @@ ansible ansible_host=44.55.66.77 ``` > **ヒント** -> +> > 作成完了したら playbook を実行してみてください。やり方は・・・、もう分かってますね (^^♪ 実行した結果を確認してみてください。 `ftpserver` グループに記載された node2 以外のホストはタスクがスキップされ、node2 のみタスクの実行が行われていることが確認できます。 @@ -91,13 +93,13 @@ changed: [node2] まずはコピー元として利用する httpd.conf を node1 から取得します。 > **ヒント** -> +> >このファイルは既に node1 node2 node3 に配置されています。 ```bash [student@ansible ansible-files]$ scp :/etc/httpd/conf/httpd.conf ~/ansible-files/. -student@'s password: +student@'s password: httpd.conf ``` @@ -138,9 +140,9 @@ Listen 8080 ``` - Playbookをもう一度実行してください。興味深い結果が得られます。 - + - httpd.conf が上書きコピーされた - + - ハンドラーが呼び出され、 Apache サービスをリスタートした Apacheはポート8080でリッスンしているはずです。試してみてください。 @@ -156,17 +158,17 @@ curl: (7) Failed connect to :80; Connection refused httpd.conf ファイルを再度 "80" に変更し、どうなるか試してみてください。 > **注意** -> +> > 演習1.7で、ポート8080を使います。この時点で 80ポートをリッスンするよう設定を戻しておいてください。 > **ヒント** -> +> > よく聞かれる質問として、notify セクションが実行されたらすぐにハンドラーが呼び出されるのか?ということがありますが、これは違います。今回の場合、notify 直下にハンドラーが定義されているのですぐの実行となりますが、notiry とハンドラーが離れていた場合は、あくまで上から順に実行され、ハンドラーの順番になったところで実行されます。 notify でハンドラー実行のフラグを立てておく感じです。 ## ステップ 1.5.3 - 単純な繰り返し(ループ実行) -ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html) +ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html) ループの機能を確認してみましょう。 node1 に3人の新しいユーザーを作成します。 `~/ansible-files` ディレクトリの中に、 `loop_users.yml` という名前の playbook を作成します。使用するのは `user` モジュールで、playbook の中身は以下の通りです。 @@ -249,4 +251,3 @@ uid=1002(dev_user) gid=1002(dev_user) Gruppen=1002(dev_user),50(ftp) ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.5-handlers/README.md b/exercises/ansible_rhel/1.5-handlers/README.md index 30231d5b6..cc2173744 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.md +++ b/exercises/ansible_rhel/1.5-handlers/README.md @@ -1,5 +1,7 @@ # Exercise 1.5 - Conditionals, Handlers and Loops +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Step 5.1 - Conditionals Ansible can use conditionals to execute tasks or plays when certain conditions are met. diff --git a/exercises/ansible_rhel/1.6-templates/README.ja.md b/exercises/ansible_rhel/1.6-templates/README.ja.md index 4e5ed3b80..515ff111d 100644 --- a/exercises/ansible_rhel/1.6-templates/README.ja.md +++ b/exercises/ansible_rhel/1.6-templates/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.6 - テンプレート +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansibleは、管理対象ホストにファイルをコピーする際、固定の内容ではなく変数に値を入力しながらコピーを行う様な事も可能です。例えば対象ホストユニークなホスト名などを含んだファイルのコピーを行うことが可能です。これを実現するのが Jinja2 テンプレートです。 Jinja2 は、Python で最も使用されているテンプレートエンジンの1つです。 () ## ステップ 1.6.1 - playbook 内でテンプレートを使用する @@ -55,7 +57,7 @@ Ansibleが変数をシステムから収取したファクト情報で変数を - 「Ansible ファクト」の章で学んだコマンドを使用して、カーネルバージョンを含むファクトを見つけます。 > **ヒント** -> +> > モジュールは `setup` ですね? `grep` 使って探してみましょう。 - 見つかったらその変数を表示するよう、テンプレートファイルに追記しましょう @@ -63,7 +65,7 @@ Ansibleが変数をシステムから収取したファクト情報で変数を - 再度 playbook を実行します - 再度 node1 にログインし、表示をチェックしてみてください - + > **答えは以下の通り** @@ -93,4 +95,3 @@ running kernel {{ ansible_kernel }}. ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.6-templates/README.md b/exercises/ansible_rhel/1.6-templates/README.md index f2026b7f0..73f6740c6 100644 --- a/exercises/ansible_rhel/1.6-templates/README.md +++ b/exercises/ansible_rhel/1.6-templates/README.md @@ -1,5 +1,7 @@ # Exercise 1.6 - Templates +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansible uses Jinja2 templating to modify files before they are distributed to managed hosts. Jinja2 is one of the most used template engines for Python (). ## Step 6.1 - Using Templates in Playbooks @@ -55,7 +57,7 @@ Add a line to the template to list the current kernel of the managed node. - Find a fact that contains the kernel version using the commands you learned in the "Ansible Facts" chapter. > **Tip** -> +> > Do a `grep -i` for kernel - Change the template to use the fact you found. @@ -65,7 +67,7 @@ Add a line to the template to list the current kernel of the managed node. - Check motd by logging in to node1 > **Warning** -> +> > **Solution below\!** diff --git a/exercises/ansible_rhel/1.7-role/README.ja.md b/exercises/ansible_rhel/1.7-role/README.ja.md index 0c9ba70e8..c1733d338 100644 --- a/exercises/ansible_rhel/1.7-role/README.ja.md +++ b/exercises/ansible_rhel/1.7-role/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.7 - Roles: Playbook を再利用可能にする +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 今までのワークショップで学習してきた通り、Playbook を1つのファイルに書くことは可能です。しかしそのうち、作成した Playbook を再利用したいと考えるようになると思います。 これを実現するのが Ansible の Roles です。Role という形で Playbook をパーツとして分解し、構造化されたディレクトリに納めるのです。詳しくはこちらの [ベストプラクティス](http://docs.ansible.com/ansible/playbooks_best_practices.html) をご確認ください。 @@ -20,7 +22,7 @@ apache/ ├── handlers │ └── main.yml ├── meta -│ └── main.yml +│ └── main.yml ├── README.md ├── tasks │ └── main.yml diff --git a/exercises/ansible_rhel/1.7-role/README.md b/exercises/ansible_rhel/1.7-role/README.md index df77e613c..135a1a94b 100644 --- a/exercises/ansible_rhel/1.7-role/README.md +++ b/exercises/ansible_rhel/1.7-role/README.md @@ -1,5 +1,7 @@ # Exercise 1.7 - Roles: Making your playbooks reusable +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + While it is possible to write a playbook in one file as we've done throughout this workshop, eventually you’ll want to reuse files and start to organize things. Ansible Roles is the way we do this. When you create a role, you deconstruct your playbook into parts and those parts sit in a directory structure. This is explained in more detail in the [best practice](http://docs.ansible.com/ansible/playbooks_best_practices.html) already mentioned in exercise 3. diff --git a/exercises/ansible_rhel/1.8-bonus/README.ja.md b/exercises/ansible_rhel/1.8-bonus/README.ja.md index beb75aed7..296c955bd 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.ja.md +++ b/exercises/ansible_rhel/1.8-bonus/README.ja.md @@ -1,11 +1,13 @@ # 演習 1.8 - ボーナスラボ +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + あなたは既にラボを完了しています・・・、が、さらに先に進みたい方は是非このボーナスラボにチャレンジしてみてください。 ## ステップ 1.8.1 - ボーナスラボ: アドホックコマンド アドホックコマンドを使って、適当なコメント付きで新しいユーザー "testuser" を `node1` と `node3` に作成します。`node2` に作成してはいけません。実行後、想定通り作成できていることも確認します。 - + - `ansible-doc user` を使ってモジュールのパラメータを確認します。 - アドホックコマンドを使ってコメント "Test D User" 付きのユーザーを作成します。 @@ -15,7 +17,7 @@ - ユーザーを削除し、それが削除されたことを確認します > **ヒント** -> +> > 権限昇格の記述を忘れないこと! > **答えは以下の通り** @@ -38,7 +40,7 @@ `httpd.conf` のリッスンポートを都度 vi 等で編集してコピーするのではなく、変数としてテンプレートの中で定義し、その変数の値を変数ファイルを使って与える方法について考えてみます。 - + - `listen_port` に変数を埋め込んだ `httpd.conf` ファイルを作成し、 `httpd.conf.j2` テンプレートを使って各 node に送付します。 - `web` グループのリッスンポートとして "8080" 、 `node2` のリッスンポートとして `80` を取るように変数ファイルを作成します。 @@ -104,13 +106,13 @@ Playbook `apache_config_tpl.yml` を以下の内容で作成します。 name: httpd state: restarted ``` - + ### 実行し確認します まずは playbook を実行し、curl コマンドで、 `node1` と `node3` にポート `8080` そして `node2` にポート `80` で接続してみます。 ```bash -[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml +[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml [...] [student1@ansible ansible-files]$ curl http://18.195.235.231:8080 @@ -125,4 +127,3 @@ Playbook `apache_config_tpl.yml` を以下の内容で作成します。 ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.8-bonus/README.md b/exercises/ansible_rhel/1.8-bonus/README.md index 845fb7104..53ee52732 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.md +++ b/exercises/ansible_rhel/1.8-bonus/README.md @@ -1,11 +1,13 @@ # Exercise 1.8 - Bonus Labs +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + You have finished the lab already. But it doesn’t have to end here. We prepared some slightly more advanced bonus labs for you to follow through if you like. So if you are done with the labs and still have some time, here are some more labs for you: ## Step 8.1 - Bonus Lab: Ad Hoc Commands Create a new user "testuser" on `node1` and `node3` with a comment using an ad hoc command, make sure that it is not created on `node2`! - + - Find the parameters for the appropriate module using `ansible-doc user` (leave with `q`) - Use an Ansible ad hoc command to create the user with the comment "Test D User" @@ -15,11 +17,11 @@ Create a new user "testuser" on `node1` and `node3` with a comment using an ad h - Delete the user and check it has been deleted > **Tip** -> +> > Remember privilege escalation…​ > **Warning** -> +> > **Solution below\!** Your commands could look like these: @@ -54,7 +56,7 @@ Instead of editing and copying `httpd.conf` why don’t you just define a variab > **Warning** -> +> > **Solution below\!** ### Define the variables: @@ -113,7 +115,7 @@ Create a playbook called `apache_config_tpl.yml`: First run the playbook itself, then run curl against `node1` with port `8080` and `node2` with port `80`. ```bash -[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml +[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml [...] [student1@ansible ansible-files]$ curl http://18.195.235.231:8080 diff --git a/exercises/ansible_rhel/README.ja b/exercises/ansible_rhel/README.ja.md similarity index 94% rename from exercises/ansible_rhel/README.ja rename to exercises/ansible_rhel/README.ja.md index d282bf91b..6816ca65b 100644 --- a/exercises/ansible_rhel/README.ja +++ b/exercises/ansible_rhel/README.ja.md @@ -1,5 +1,7 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux +**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja). + Ansibleはアプリケーションの展開、構成管理、オーケストレーションなどで利用できるシンプルでパワフルな自動化エンジンであり、すぐに習得することができます。 このラボの最初のセクションでは、Ansible Engineによる自動化の基礎からいくつかの先進的なコンセプトまでを学習します。 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 6a1b49fa5..636487a5c 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,5 +1,7 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. In the first section of this lab you will learn to use Ansible Engine for automation from the basics up to some more advanced concepts. From e8e023a5abfad3ab099f1cfda277eecee1a1cb99 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:10:01 -0400 Subject: [PATCH 17/50] cleaning up yml support --- _config.yml | 7 +++++++ .../ansible_network/2-first-playbook/playbook.yml | 13 ------------- 2 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 exercises/ansible_network/2-first-playbook/playbook.yml diff --git a/_config.yml b/_config.yml index 346aef9d8..bdf71f92c 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,8 @@ theme: jekyll-theme-dinky +exclude: + - "*.yml" + - "*.yaml" +include: + - "exercises/ansible_network/playbook.yml" + - "exercises/ansible_network/3-facts/facts.yml" + - "exercises/ansible_network/4-jinja/config.yml" diff --git a/exercises/ansible_network/2-first-playbook/playbook.yml b/exercises/ansible_network/2-first-playbook/playbook.yml deleted file mode 100644 index 5d30d7df6..000000000 --- a/exercises/ansible_network/2-first-playbook/playbook.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: snmp ro/rw string configuration - hosts: cisco - gather_facts: no - - tasks: - - - name: ensure that the desired snmp strings are present - ios_config: - commands: - - snmp-server community ansible-public RO - - snmp-server community ansible-private RW - - snmp-server community ansible-test RO From 13021e0b4b56cc65a6cd842ee1e1a550a07032a3 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:24:03 -0400 Subject: [PATCH 18/50] fixing errors with translation links --- _config.yml | 1 + exercises/ansible_f5/1.0-explore/README.ja.md | 2 +- exercises/ansible_f5/1.0-explore/README.md | 2 +- exercises/ansible_f5/1.1-get-facts/README.ja.md | 2 +- exercises/ansible_f5/1.1-get-facts/README.md | 2 +- exercises/ansible_f5/1.2-add-node/README.ja.md | 2 +- exercises/ansible_f5/1.2-add-node/README.md | 2 +- exercises/ansible_f5/1.3-add-pool/README.ja.md | 2 +- exercises/ansible_f5/1.3-add-pool/README.md | 2 +- exercises/ansible_f5/1.4-add-pool-members/README.ja.md | 2 +- exercises/ansible_f5/1.4-add-pool-members/README.md | 2 +- exercises/ansible_f5/1.5-add-virtual-server/README.ja.md | 4 ++-- exercises/ansible_f5/1.5-add-virtual-server/README.md | 2 +- exercises/ansible_f5/1.6-add-irules/README.ja.md | 2 +- exercises/ansible_f5/1.6-add-irules/README.md | 2 +- exercises/ansible_f5/1.7-save-running-config/README.ja.md | 2 +- exercises/ansible_f5/1.7-save-running-config/README.md | 2 +- exercises/ansible_f5/2.0-disable-pool-member/README.ja.md | 2 +- exercises/ansible_f5/2.0-disable-pool-member/README.md | 2 +- exercises/ansible_f5/2.1-delete-configuration/README.ja.md | 2 +- exercises/ansible_f5/2.1-delete-configuration/README.md | 2 +- exercises/ansible_f5/2.2-error-handling/README.ja.md | 2 +- exercises/ansible_f5/2.2-error-handling/README.md | 2 +- exercises/ansible_f5/3.0-as3-intro/README.ja.md | 2 +- exercises/ansible_f5/3.0-as3-intro/README.md | 2 +- exercises/ansible_f5/3.1-as3-change/README.ja.md | 2 +- exercises/ansible_f5/3.1-as3-change/README.md | 2 +- exercises/ansible_f5/3.2-as3-delete/README.ja.md | 2 +- exercises/ansible_f5/3.2-as3-delete/README.md | 2 +- exercises/ansible_f5/README.ja.md | 2 +- exercises/ansible_f5/README.md | 2 +- exercises/ansible_network/1-explore/README.ja.md | 2 +- exercises/ansible_network/1-explore/README.md | 2 +- exercises/ansible_network/2-first-playbook/README.ja.md | 2 +- exercises/ansible_network/2-first-playbook/README.md | 4 ++-- exercises/ansible_network/3-facts/README.ja.md | 2 +- exercises/ansible_network/3-facts/README.md | 2 +- exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- exercises/ansible_rhel/1.2-adhoc/README.ja.md | 2 +- exercises/ansible_rhel/1.2-adhoc/README.md | 2 +- exercises/ansible_rhel/1.3-playbook/README.ja.md | 2 +- exercises/ansible_rhel/1.3-playbook/README.md | 2 +- exercises/ansible_rhel/1.4-variables/README.ja.md | 2 +- exercises/ansible_rhel/1.4-variables/README.md | 2 +- exercises/ansible_rhel/1.5-handlers/README.ja.md | 2 +- exercises/ansible_rhel/1.5-handlers/README.md | 2 +- exercises/ansible_rhel/1.6-templates/README.ja.md | 2 +- exercises/ansible_rhel/1.6-templates/README.md | 2 +- exercises/ansible_rhel/1.7-role/README.ja.md | 2 +- exercises/ansible_rhel/1.7-role/README.md | 2 +- exercises/ansible_rhel/1.8-bonus/README.ja.md | 2 +- exercises/ansible_rhel/1.8-bonus/README.md | 2 +- exercises/ansible_rhel/README.ja.md | 4 +--- exercises/ansible_rhel/README.md | 4 +--- 55 files changed, 57 insertions(+), 60 deletions(-) diff --git a/_config.yml b/_config.yml index bdf71f92c..19426486a 100644 --- a/_config.yml +++ b/_config.yml @@ -6,3 +6,4 @@ include: - "exercises/ansible_network/playbook.yml" - "exercises/ansible_network/3-facts/facts.yml" - "exercises/ansible_network/4-jinja/config.yml" + - workshops/exercises/ansible_network/3-facts/facts.yml diff --git a/exercises/ansible_f5/1.0-explore/README.ja.md b/exercises/ansible_f5/1.0-explore/README.ja.md index cf36a127c..13d7c12ac 100644 --- a/exercises/ansible_f5/1.0-explore/README.ja.md +++ b/exercises/ansible_f5/1.0-explore/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.0 - 演習環境の確認 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 演習を開始する前にぜひ Ansible Slack へ参加してください!(任意) diff --git a/exercises/ansible_f5/1.0-explore/README.md b/exercises/ansible_f5/1.0-explore/README.md index a7e7f8f6a..5772ee256 100644 --- a/exercises/ansible_f5/1.0-explore/README.md +++ b/exercises/ansible_f5/1.0-explore/README.md @@ -1,6 +1,6 @@ ### Exercise 1.0: Exploring the lab environment -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Before you get started, please join us on slack! [Click here to join the ansiblenetwork slack](https://join.slack.com/t/ansiblenetwork/shared_invite/enQtMzEyMTcxMTE5NjM3LWIyMmQ4YzNhYTA4MjA2OTRhZDQzMTZkNWZlN2E3NzhhMWQ5ZTdmNmViNjk2M2JkYzJjODhjMjVjMGUxZjc2MWE). This will allow you to chat with other network automation engineers and get help after the workshops concludes. diff --git a/exercises/ansible_f5/1.1-get-facts/README.ja.md b/exercises/ansible_f5/1.1-get-facts/README.ja.md index 0e2e86b38..69686ab13 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.ja.md +++ b/exercises/ansible_f5/1.1-get-facts/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.1 - Ansible による F5 BIG-IP の情報収集 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.1-get-facts/README.md b/exercises/ansible_f5/1.1-get-facts/README.md index 1fd0ed2cc..c882d3ab5 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.md +++ b/exercises/ansible_f5/1.1-get-facts/README.md @@ -1,6 +1,6 @@ # Exercise 1.1: Using the bigip_device_facts module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.2-add-node/README.ja.md b/exercises/ansible_f5/1.2-add-node/README.ja.md index 2516d8a06..90d00e490 100644 --- a/exercises/ansible_f5/1.2-add-node/README.ja.md +++ b/exercises/ansible_f5/1.2-add-node/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.2 - ノードの追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.2-add-node/README.md b/exercises/ansible_f5/1.2-add-node/README.md index d820bdd48..8b705cb55 100644 --- a/exercises/ansible_f5/1.2-add-node/README.md +++ b/exercises/ansible_f5/1.2-add-node/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Adding nodes to F5 BIG-IP -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.3-add-pool/README.ja.md b/exercises/ansible_f5/1.3-add-pool/README.ja.md index 3e080bc43..591d804d6 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.ja.md +++ b/exercises/ansible_f5/1.3-add-pool/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.3 - プールの追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.3-add-pool/README.md b/exercises/ansible_f5/1.3-add-pool/README.md index 67cb39ef3..ab8d7d9de 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.md +++ b/exercises/ansible_f5/1.3-add-pool/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Adding a load balancing pool -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md index 0033998fd..f35644c6b 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.4 - メンバーをプールへ追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.md b/exercises/ansible_f5/1.4-add-pool-members/README.md index f7dcb7c32..bcae8b59a 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.md @@ -1,6 +1,6 @@ # Exercise 1.4: Adding members to a pool on F5 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md index 3cb2030d3..f45092fae 100644 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.5 - Virtual Server の追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 @@ -155,4 +155,4 @@ Virtual Serverは画面左のメニューから辿ることで確認できます ``` -これで本演習は終わりです。[演習ガイドへ戻る](../README.ja.md) +これで本演習は終わりです。[演習ガイドへ戻る](../README.ja.md.md) diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.md b/exercises/ansible_f5/1.5-add-virtual-server/README.md index 1eb223f77..7cb1a8c42 100755 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.md @@ -1,6 +1,6 @@ # Exercise 1.5: Using the bigip_virtual_server module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.6-add-irules/README.ja.md b/exercises/ansible_f5/1.6-add-irules/README.ja.md index d78f97f1b..f28bdcff5 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.ja.md +++ b/exercises/ansible_f5/1.6-add-irules/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.6 - iRules の追加と Virtual Server へのアタッチ -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.6-add-irules/README.md b/exercises/ansible_f5/1.6-add-irules/README.md index 4cf23aba7..edf92e1d8 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.md +++ b/exercises/ansible_f5/1.6-add-irules/README.md @@ -1,6 +1,6 @@ # Exercise 1.6: Using the bigip_irule module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.7-save-running-config/README.ja.md b/exercises/ansible_f5/1.7-save-running-config/README.ja.md index 29340b5b9..d427ce7f4 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.ja.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.7 - コンフィグの保存 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.7-save-running-config/README.md b/exercises/ansible_f5/1.7-save-running-config/README.md index 8188306f4..f4ffaf957 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.md @@ -1,6 +1,6 @@ # Exercise 1.7: Using the bigip_config module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md index f5cc0ce01..171bd13cd 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.0 - プールメンバーの無効化 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.md b/exercises/ansible_f5/2.0-disable-pool-member/README.md index a36aed323..182bb6ad5 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.md @@ -1,6 +1,6 @@ # Exercise 2.0 - Disabling a pool member -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md index 297a12838..a7e74e6c9 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.1 - モジュールの組み合わせを使用してBIG-IPの構成を削除する -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.md b/exercises/ansible_f5/2.1-delete-configuration/README.md index 9fe813689..ab75e5031 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.md @@ -1,6 +1,6 @@ # Exercise 2.1: Using a combination of modules to delete configuration on the BIG-IP -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.2-error-handling/README.ja.md b/exercises/ansible_f5/2.2-error-handling/README.ja.md index 9d59cfcce..c1953ee7a 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.ja.md +++ b/exercises/ansible_f5/2.2-error-handling/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.2 - モジュールの組み合わせを使用して適切なロールバックを実行する -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.2-error-handling/README.md b/exercises/ansible_f5/2.2-error-handling/README.md index 32e742aa5..1ac45853c 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.md +++ b/exercises/ansible_f5/2.2-error-handling/README.md @@ -1,6 +1,6 @@ # Exercise 2.2: Using a combination of modules to perform a graceful rollback -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.0-as3-intro/README.ja.md b/exercises/ansible_f5/3.0-as3-intro/README.ja.md index 34bb1f351..8de902ec1 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.ja.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.0 - AS3の概要 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.0-as3-intro/README.md b/exercises/ansible_f5/3.0-as3-intro/README.md index bfd0c0142..0e78923af 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.md @@ -1,6 +1,6 @@ # Exercise 3.0 - Introduction to AS3 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.1-as3-change/README.ja.md b/exercises/ansible_f5/3.1-as3-change/README.ja.md index 89f8d649e..dfbfae81f 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.ja.md +++ b/exercises/ansible_f5/3.1-as3-change/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.1 - AS3 による変更運用 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.1-as3-change/README.md b/exercises/ansible_f5/3.1-as3-change/README.md index 727aa68a5..8d6cb8b28 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.md +++ b/exercises/ansible_f5/3.1-as3-change/README.md @@ -1,6 +1,6 @@ # Exercise 3.1 - Operational Change with AS3 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.2-as3-delete/README.ja.md b/exercises/ansible_f5/3.2-as3-delete/README.ja.md index f1ce31502..0e0e23bb7 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.ja.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.2 - Web アプリケーションの削除 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.2-as3-delete/README.md b/exercises/ansible_f5/3.2-as3-delete/README.md index 00b7377ff..cba8dd7a0 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.md @@ -1,6 +1,6 @@ # Exercise 3.2 - Deleting a Web Application -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index 2410805de..bd4138c3c 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,7 +4,7 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Presentation プレゼンテーション資料はこちらです: diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 4fd350c68..1fd1e3be6 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,7 +4,7 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Presentation Want the Presentation Deck? Its right here: diff --git a/exercises/ansible_network/1-explore/README.ja.md b/exercises/ansible_network/1-explore/README.ja.md index 96f8e5ce8..3dc57bf2a 100644 --- a/exercises/ansible_network/1-explore/README.ja.md +++ b/exercises/ansible_network/1-explore/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.0 - Anisbleのlab環境を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ラボを開始する前に、ぜひSlackに参加してみましょう! 今後のAnsibleの学習に役立つはずです。 diff --git a/exercises/ansible_network/1-explore/README.md b/exercises/ansible_network/1-explore/README.md index 3417b8092..11ec62b5b 100644 --- a/exercises/ansible_network/1-explore/README.md +++ b/exercises/ansible_network/1-explore/README.md @@ -1,6 +1,6 @@ # Exercise 1 - Exploring the lab environment -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_network/2-first-playbook/README.ja.md b/exercises/ansible_network/2-first-playbook/README.ja.md index 1ad289fe4..f93546e6c 100644 --- a/exercises/ansible_network/2-first-playbook/README.ja.md +++ b/exercises/ansible_network/2-first-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 2.0 - Routerのコンフィグを更新してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleを用いて、ルータのコンフィグを更新することができます。 コンフィグファイルを機器へPushする方法や、コンフィグレーションを1列ごとにPushすることもできます。 diff --git a/exercises/ansible_network/2-first-playbook/README.md b/exercises/ansible_network/2-first-playbook/README.md index 86d46b4f9..6975abd03 100644 --- a/exercises/ansible_network/2-first-playbook/README.md +++ b/exercises/ansible_network/2-first-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 2 - First Ansible Playbook -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents @@ -226,7 +226,7 @@ snmp-server community ansible-test RO # Solution -The finished Ansible Playbook is provided here for an answer key: [playbook.yml](playbook.yml). +The finished Ansible Playbook is provided here for an answer key: [playbook.yml](../playbook.yml). --- diff --git a/exercises/ansible_network/3-facts/README.ja.md b/exercises/ansible_network/3-facts/README.ja.md index 4a70f0aca..4350491e1 100644 --- a/exercises/ansible_network/3-facts/README.ja.md +++ b/exercises/ansible_network/3-facts/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Moduleのドキュメントの確認方法、 出力結果の登録方法、 tagの使い方 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 前のセクションでは、`ios_facts` と `debug` の使い方を学びました。 `debug` モジュールの使い方では、 `msg` と呼ばれるパラメータを設定しましたが、`ios_facts`モジュールについては特にそのようなものを設定しませんでした。 diff --git a/exercises/ansible_network/3-facts/README.md b/exercises/ansible_network/3-facts/README.md index d2dcada87..cc5f592ab 100644 --- a/exercises/ansible_network/3-facts/README.md +++ b/exercises/ansible_network/3-facts/README.md @@ -1,6 +1,6 @@ # Exercise 3: Ansible Facts -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index 0011876a0..05bcae876 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index c26e6cade..7af47f5f0 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). ## Your Lab Environment diff --git a/exercises/ansible_rhel/1.2-adhoc/README.ja.md b/exercises/ansible_rhel/1.2-adhoc/README.ja.md index 28e379e0e..4aaa15af3 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.ja.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index 069a533a3..7e4c7001d 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Running Ad-hoc commands -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. diff --git a/exercises/ansible_rhel/1.3-playbook/README.ja.md b/exercises/ansible_rhel/1.3-playbook/README.ja.md index e9243a30f..77556b3d2 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.ja.md +++ b/exercises/ansible_rhel/1.3-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index cc1e40087..cb5e2121f 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Writing Your First Playbook -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. diff --git a/exercises/ansible_rhel/1.4-variables/README.ja.md b/exercises/ansible_rhel/1.4-variables/README.ja.md index 52b790244..98909ea61 100644 --- a/exercises/ansible_rhel/1.4-variables/README.ja.md +++ b/exercises/ansible_rhel/1.4-variables/README.ja.md @@ -1,6 +1,6 @@ # 演習1.4 - 変数を使ってみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 前回までは Ansible Engine の基礎部分を学習してきました。この演習では Playbook をより柔軟かつパワフルに使用できる、より高度なスキルを学びます。 diff --git a/exercises/ansible_rhel/1.4-variables/README.md b/exercises/ansible_rhel/1.4-variables/README.md index fcca23a35..58f25dff1 100644 --- a/exercises/ansible_rhel/1.4-variables/README.md +++ b/exercises/ansible_rhel/1.4-variables/README.md @@ -1,6 +1,6 @@ # Exercise 1.4 - Using Variables -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Previous exercises showed you the basics of Ansible Engine. In the next few exercises, we are going to teach some more advanced ansible skills that will add flexibility and power to your playbooks. diff --git a/exercises/ansible_rhel/1.5-handlers/README.ja.md b/exercises/ansible_rhel/1.5-handlers/README.ja.md index 0d2a93cbe..d4b98e395 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.ja.md +++ b/exercises/ansible_rhel/1.5-handlers/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.5 - 条件分岐, ハンドラー、ループ実行 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## ステップ 1.5.1 - 条件分岐 diff --git a/exercises/ansible_rhel/1.5-handlers/README.md b/exercises/ansible_rhel/1.5-handlers/README.md index cc2173744..90aab7dbd 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.md +++ b/exercises/ansible_rhel/1.5-handlers/README.md @@ -1,6 +1,6 @@ # Exercise 1.5 - Conditionals, Handlers and Loops -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Step 5.1 - Conditionals diff --git a/exercises/ansible_rhel/1.6-templates/README.ja.md b/exercises/ansible_rhel/1.6-templates/README.ja.md index 515ff111d..361b2312b 100644 --- a/exercises/ansible_rhel/1.6-templates/README.ja.md +++ b/exercises/ansible_rhel/1.6-templates/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.6 - テンプレート -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleは、管理対象ホストにファイルをコピーする際、固定の内容ではなく変数に値を入力しながらコピーを行う様な事も可能です。例えば対象ホストユニークなホスト名などを含んだファイルのコピーを行うことが可能です。これを実現するのが Jinja2 テンプレートです。 Jinja2 は、Python で最も使用されているテンプレートエンジンの1つです。 () diff --git a/exercises/ansible_rhel/1.6-templates/README.md b/exercises/ansible_rhel/1.6-templates/README.md index 73f6740c6..1845bbfc7 100644 --- a/exercises/ansible_rhel/1.6-templates/README.md +++ b/exercises/ansible_rhel/1.6-templates/README.md @@ -1,6 +1,6 @@ # Exercise 1.6 - Templates -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansible uses Jinja2 templating to modify files before they are distributed to managed hosts. Jinja2 is one of the most used template engines for Python (). diff --git a/exercises/ansible_rhel/1.7-role/README.ja.md b/exercises/ansible_rhel/1.7-role/README.ja.md index c1733d338..12192d0f1 100644 --- a/exercises/ansible_rhel/1.7-role/README.ja.md +++ b/exercises/ansible_rhel/1.7-role/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.7 - Roles: Playbook を再利用可能にする -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 今までのワークショップで学習してきた通り、Playbook を1つのファイルに書くことは可能です。しかしそのうち、作成した Playbook を再利用したいと考えるようになると思います。 diff --git a/exercises/ansible_rhel/1.7-role/README.md b/exercises/ansible_rhel/1.7-role/README.md index 135a1a94b..a36ee41e3 100644 --- a/exercises/ansible_rhel/1.7-role/README.md +++ b/exercises/ansible_rhel/1.7-role/README.md @@ -1,6 +1,6 @@ # Exercise 1.7 - Roles: Making your playbooks reusable -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). While it is possible to write a playbook in one file as we've done throughout this workshop, eventually you’ll want to reuse files and start to organize things. diff --git a/exercises/ansible_rhel/1.8-bonus/README.ja.md b/exercises/ansible_rhel/1.8-bonus/README.ja.md index 296c955bd..9fdc78df2 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.ja.md +++ b/exercises/ansible_rhel/1.8-bonus/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.8 - ボーナスラボ -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). あなたは既にラボを完了しています・・・、が、さらに先に進みたい方は是非このボーナスラボにチャレンジしてみてください。 diff --git a/exercises/ansible_rhel/1.8-bonus/README.md b/exercises/ansible_rhel/1.8-bonus/README.md index 53ee52732..f2ceadd3a 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.md +++ b/exercises/ansible_rhel/1.8-bonus/README.md @@ -1,6 +1,6 @@ # Exercise 1.8 - Bonus Labs -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). You have finished the lab already. But it doesn’t have to end here. We prepared some slightly more advanced bonus labs for you to follow through if you like. So if you are done with the labs and still have some time, here are some more labs for you: diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README.ja.md index 6816ca65b..8e02d2c11 100644 --- a/exercises/ansible_rhel/README.ja.md +++ b/exercises/ansible_rhel/README.ja.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). Ansibleはアプリケーションの展開、構成管理、オーケストレーションなどで利用できるシンプルでパワフルな自動化エンジンであり、すぐに習得することができます。 @@ -10,8 +10,6 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). - ## プレゼンテーション資料 プレゼンテーション資料はこちら: diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 636487a5c..924ce5425 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. @@ -10,8 +10,6 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). - ## Presentations Want the Presentation Deck? Its right here: From 80e1160b39d6c0ca6e75544d20c7f1aa2b558c9e Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:32:42 -0400 Subject: [PATCH 19/50] fixing more errors and spacing issues --- _config.yml | 2 +- exercises/ansible_f5/README.ja.md | 2 +- exercises/ansible_f5/README.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- exercises/ansible_rhel/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_config.yml b/_config.yml index 19426486a..75ccc9f66 100644 --- a/_config.yml +++ b/_config.yml @@ -6,4 +6,4 @@ include: - "exercises/ansible_network/playbook.yml" - "exercises/ansible_network/3-facts/facts.yml" - "exercises/ansible_network/4-jinja/config.yml" - - workshops/exercises/ansible_network/3-facts/facts.yml + - "workshops/exercises/ansible_network/3-facts/facts.yml" diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index bd4138c3c..2ea69a01b 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,7 +4,7 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). ## Presentation プレゼンテーション資料はこちらです: diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 1fd1e3be6..e41d0eb2f 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,7 +4,7 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). ## Presentation Want the Presentation Deck? Its right here: diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 7af47f5f0..ceb25174d 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). ## Your Lab Environment diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 924ce5425..d219f0ac0 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja.md). Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. From 226299442ccbbe17f5c6b0684d8e2de7d85b15b9 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:40:48 -0400 Subject: [PATCH 20/50] Update _config.yml --- _config.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/_config.yml b/_config.yml index 75ccc9f66..9cb685e60 100644 --- a/_config.yml +++ b/_config.yml @@ -1,9 +1,4 @@ theme: jekyll-theme-dinky exclude: - - "*.yml" - - "*.yaml" -include: - - "exercises/ansible_network/playbook.yml" - - "exercises/ansible_network/3-facts/facts.yml" - - "exercises/ansible_network/4-jinja/config.yml" - - "workshops/exercises/ansible_network/3-facts/facts.yml" + - "demos/*" + - "provisioner/*" From 5d6a4011b8dd7dbb1c7ba2d4b65f361559360e52 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:53:41 -0400 Subject: [PATCH 21/50] Update README.md adding more clear directions for documentation --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9272b7f2e..2c8e3c58a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,15 @@ The Red Hat Ansible Automation Workshops project is intended for effectively dem # SELF-PACED EXERCISES: - * [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop + - [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop + +# DOCUMENTATION: + + - [How to contribute](docs/contribute.md) + - [How to use the AWS Lab Provisioner](provisioner/readme.md) + - [FAQ](docs/faq.md) + + --- ![Red Hat Ansible Automation](images/rh-ansible-automation.png) From 7442237d120f481f4a38b7cad85b64b3cdff4765 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:54:21 -0400 Subject: [PATCH 22/50] killing index.md so it defaults to readme.md --- index.md | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 index.md diff --git a/index.md b/index.md deleted file mode 100644 index 9272b7f2e..000000000 --- a/index.md +++ /dev/null @@ -1,22 +0,0 @@ -# RED HAT ANSIBLE WORKSHOPS - -The Red Hat Ansible Automation Workshops project is intended for effectively demonstrating Ansible's capabilities through instructor-led workshops or self-paced exercises. - - -# INSTRUCTOR LED WORKSHOPS: - -| Workshop | Presentation Deck | Exercises | Workshop Type Var | -|---|---|---|---| -| **Ansible Red Hat Enterprise Linux Workshop**
focused on automating Linux platforms like Red Hat Enterprise Linux | [Deck](https://ansible.github.io/workshops/decks/ansible_technical.pdf)
[Ansible Tower](https://ansible.github.io/workshops/decks/tower_intro.pdf) | [Exercises](./exercises/ansible_rhel) | `workshop_type: rhel` | -| **Ansible Network Automation Workshop**
focused on router and switch platforms like Arista, Cisco, Juniper | [Deck](https://ansible.github.io/workshops/decks/ansible_network.pdf) | [Exercises](./exercises/ansible_network) | `workshop_type: networking` | -| **Ansible F5 Workshop**
focused on automation of F5 BIG-IP | [Deck](https://ansible.github.io/workshops/decks/ansible_f5.pdf) | [Exercises](./exercises/ansible_f5) | `workshop_type: f5` | - -## LAB PROVISIONER - - [AWS Lab Provisioner](provisioner) - playbook that spins up instances on AWS for students to perform the exercises provided above. - -# SELF-PACED EXERCISES: - - * [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop - ---- -![Red Hat Ansible Automation](images/rh-ansible-automation.png) From d834b25cc60e3d596b2a1574190bcef44b362f67 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:56:41 -0400 Subject: [PATCH 23/50] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c8e3c58a..620023325 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ The Red Hat Ansible Automation Workshops project is intended for effectively dem # DOCUMENTATION: - [How to contribute](docs/contribute.md) - - [How to use the AWS Lab Provisioner](provisioner/readme.md) + - [How to use the AWS Lab Provisioner](provisioner/README.md) - [FAQ](docs/faq.md) From b5d6f6d07689a2255df5a560489c4279a46a4315 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:58:10 -0400 Subject: [PATCH 24/50] Update _config.yml --- _config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_config.yml b/_config.yml index 9cb685e60..24e750a5c 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,6 @@ theme: jekyll-theme-dinky +include: + - "provisioner/README.md" exclude: - "demos/*" - "provisioner/*" From 5e37c9a25585c01f575491f2050af05e37e46493 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:03:25 -0400 Subject: [PATCH 25/50] Update _config.yml --- _config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 24e750a5c..fdf220460 100644 --- a/_config.yml +++ b/_config.yml @@ -3,4 +3,6 @@ include: - "provisioner/README.md" exclude: - "demos/*" - - "provisioner/*" + - "provisioner/roles" + - "provisioner/group_vars" + - "provisioner/inventory" From 10374113147cfc887e6e42457809fffc31e3e951 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:08:41 -0400 Subject: [PATCH 26/50] Update README.md --- provisioner/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/provisioner/README.md b/provisioner/README.md index 3f39c3c1e..c0f8617a7 100644 --- a/provisioner/README.md +++ b/provisioner/README.md @@ -1,5 +1,6 @@ # Ansible AWS training provisioner -**aws_lab_setup** is an automated lab setup for Ansible training on AWS (Amazon Web Services). Set the `workshop_type` variable below to provision the corresponding workshop. + +The `github.com/ansible/workshops` contains a provisioner `provision_lab.yml`, which is an automated lab setup for Ansible training on AWS (Amazon Web Services). Set the `workshop_type` variable below to provision the corresponding workshop. | Workshop | Deck | Exercises | Workshop Type Var | |---|---|---|---| @@ -17,7 +18,7 @@ - [FAQ](../docs/faq.md) # Requirements -- This provisioner must be run with Ansible Engine v2.7.0 or higher. +- This provisioner must be run with Ansible Engine v2.8.0 or higher. - AWS Account (follow directions on one time setup below) # Lab Setup @@ -70,7 +71,7 @@ For more extra_vars examples, look at the following: ## Accessing student documentation and slides - - Exercises and instructor slides are hosted at http://ansible.com/linklight + - Exercises and instructor slides are hosted at http://ansible.github.io/workshops - Workbench information is stored in two places after you provision: - in a local directory named after the workshop (e.g. TESTWORKSHOP/instructor_inventory) - if `create_login_page: true` is enabled, there will be a website ec2_name_prefix.workshop_dns_zone (e.g. TESTWORKSHOP.rhdemo.io) @@ -86,4 +87,5 @@ To destroy all the EC2 instances after training is complete: ansible-playbook teardown_lab.yml -e @extra_vars.yml # FAQ + For frequently asked questions see the [FAQ](../docs/faq.md) From 2f40f4198bdf61105e522621a21d41cbda63b140 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:15:58 -0400 Subject: [PATCH 27/50] Update contribute.md --- docs/contribute.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/contribute.md b/docs/contribute.md index 0dae742cd..b9c03f022 100644 --- a/docs/contribute.md +++ b/docs/contribute.md @@ -7,14 +7,17 @@ We take pull requests! What is a pull request? More info on PRs: [https://help.github.com/en/articles/about-pull-requests](https://help.github.com/en/articles/about-pull-requests) ## Create a fork! + Create a fork on your own Github project (or your personal space) [Github Documentation on Forking a repo](https://help.github.com/articles/fork-a-repo/) ## Stay in Sync + It is important to know how to keep your fork in sync with the upstream Workshops project. ### Configuring Your Remotes + Configure `ansible/workshops` as your upstream so you can stay in sync ```bash @@ -22,10 +25,11 @@ git remote add upstream https://github.com/ansible/workshops.git ``` ### Rebasing Your Branch + Three step process ```bash -git pull --rebase upstream master +git pull --rebase upstream devel ``` ```bash @@ -33,6 +37,7 @@ git status ``` ### Updating your Pull Request + ```bash git push --force ``` @@ -41,6 +46,8 @@ More info on docs.ansible.com: [Rebasing a Pull Request](http://docs.ansible.com ## Create a pull requests +**PULL REQUESTS MUST BE MADE INTO THE `DEVEL` BRANCH** + Make sure you are not behind (in sync) and then submit a PR to the Ansible Workshops. [Read the Pull Request Documentation on Github.com](https://help.github.com/articles/creating-a-pull-request/) @@ -53,6 +60,7 @@ Just because you submit a PR, doesn't mean that it will get accepted. Right now Being more descriptive is better, and has a higher change of getting merged upstream. Communication is key! Just b/c the PR doesn't get accepted right away doesn't mean it is not a good idea. Ansible Workshops have to balance many different types of users. Thank you for contributing! # Going Further + The following links will be helpful if you want to contribute code to the Ansible Workshops project, or any Ansible project: - [Ansible Committer Guidelines](http://docs.ansible.com/ansible/latest/committer_guidelines.html) - [Learning Git](https://git-scm.com/book/en/v2) From 0165542e18b08f30721189ab8a0857c88e59cc3e Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 11:55:21 -0400 Subject: [PATCH 28/50] syncing branch for aug 2nd, 11:55AM --- .../1-explore/{README.ja.md => README_ja.md} | 0 .../{README.ja.md => README_ja.md} | 0 .../3-facts/{README.ja.md => README_ja.md} | 0 provisioner/group_vars/all.yml | 1 + .../manage_ec2_instances/defaults/main.yml | 8 +++ .../tasks/instances_storage.yml | 54 +++++++++++++++++++ 6 files changed, 63 insertions(+) rename exercises/ansible_network/1-explore/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/2-first-playbook/{README.ja.md => README_ja.md} (100%) rename exercises/ansible_network/3-facts/{README.ja.md => README_ja.md} (100%) create mode 100644 provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml diff --git a/exercises/ansible_network/1-explore/README.ja.md b/exercises/ansible_network/1-explore/README_ja.md similarity index 100% rename from exercises/ansible_network/1-explore/README.ja.md rename to exercises/ansible_network/1-explore/README_ja.md diff --git a/exercises/ansible_network/2-first-playbook/README.ja.md b/exercises/ansible_network/2-first-playbook/README_ja.md similarity index 100% rename from exercises/ansible_network/2-first-playbook/README.ja.md rename to exercises/ansible_network/2-first-playbook/README_ja.md diff --git a/exercises/ansible_network/3-facts/README.ja.md b/exercises/ansible_network/3-facts/README_ja.md similarity index 100% rename from exercises/ansible_network/3-facts/README.ja.md rename to exercises/ansible_network/3-facts/README_ja.md diff --git a/provisioner/group_vars/all.yml b/provisioner/group_vars/all.yml index 12baf35e8..3ee37beff 100644 --- a/provisioner/group_vars/all.yml +++ b/provisioner/group_vars/all.yml @@ -11,6 +11,7 @@ valid_workshop_types: - f5 - rhel - security + - storage network_type: multivendor valid_network_types: - cisco diff --git a/provisioner/roles/manage_ec2_instances/defaults/main.yml b/provisioner/roles/manage_ec2_instances/defaults/main.yml index 74b8e5cca..4dbd4b506 100644 --- a/provisioner/roles/manage_ec2_instances/defaults/main.yml +++ b/provisioner/roles/manage_ec2_instances/defaults/main.yml @@ -85,3 +85,11 @@ ec2_info: architecture: x86_64 filter: 'RHEL-7.6_HVM-20190515-x86_64-0-Access2-GP2' #FIXME - needs to be something checkpoint username: ec2-user + netapp: + owners: 679593333241 + size: t2.medium + os_type: linux + disk_space: 10 + architecture: x86_64 + filter: 'OnCommand_Cloud_Manager_3.7.0_Marketplace*' + username: ec2-user diff --git a/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml new file mode 100644 index 000000000..bfc79be57 --- /dev/null +++ b/provisioner/roles/manage_ec2_instances/tasks/instances_storage.yml @@ -0,0 +1,54 @@ +- name: find ami for netapp + ec2_ami_facts: + region: "{{ ec2_region }}" + owners: "{{ ec2_info[netapp].owners }}" + filters: + name: "{{ ec2_info[netapp].filter }}" + architecture: "{{ ec2_info[netapp].architecture }}" + register: amis + +- name: save ami for netapp + set_fact: + netapp_ami: > + {{ amis.images | selectattr('name', 'defined') | sort(attribute='creation_date') | last }} + +- name: Create EC2 instances for netapp + ec2: + assign_public_ip: yes + key_name: "{{ ec2_name_prefix }}-key" + group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_info[rhel].size }}" + image: "{{ netapp_ami.image_id }}" + region: "{{ ec2_region }}" + exact_count: "{{ student_total }}" + count_tag: + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + wait: "{{ ec2_wait }}" + vpc_subnet_id: "{{ ec2_vpc_subnet_id }}" + volumes: + - device_name: /dev/sda1 + volume_type: gp2 + volume_size: "{{ ec2_info[rhel].disk_space }}" + delete_on_termination: true + register: netapp_output + +- name: Ensure tags are present for netapp_output + ec2_tag: + region: "{{ ec2_region }}" + resource: "{{item.1}}" + state: present + tags: + Name: "{{ ec2_name_prefix }}-student{{item.0 + 1}}-netapp" + Workshop_netapp: "{{ec2_name_prefix}}-netapp" + Workshop: "{{ec2_name_prefix}}" + Index: "{{ item[0] }}" + Student: "student{{item.0 + 1}}" + AWS_USERNAME: "{{ linklight_user }}" + Info: "AWS_USERNAME that provisioned this-> {{ linklight_user }}" + Linklight: "This was provisioned through the linklight provisioner" + Students: "{{student_total}}" + short_name: "netapp" + username: "{{ec2_info[rhel].username}}" + with_indexed_items: + - "{{ netapp_output.instance_ids }}" + when: netapp_output.instance_ids is not none From 123bb6ac4931fd907f8129679bf06f3262fc70a9 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:01:10 -0400 Subject: [PATCH 29/50] syncing japanese test --- exercises/ansible_rhel/README.ja.md | 2 +- exercises/ansible_rhel/README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README.ja.md index 5c27e345c..a9ef76130 100644 --- a/exercises/ansible_rhel/README.ja.md +++ b/exercises/ansible_rhel/README.ja.md @@ -8,7 +8,7 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![uk](../../images/japan.png) 日本語](README.ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). ## プレゼンテーション資料 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 1a61d045f..6fe9e4115 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -8,7 +8,7 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). ## Presentations @@ -45,4 +45,3 @@ Also have a look at our Ansible Best Practices Deck: --- ![Red Hat Ansible Automation](../../images/rh-ansible-automation.png) - From 4c31c65002b67b19163e81c7815354afb1fb5b74 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:07:20 -0400 Subject: [PATCH 30/50] changing file names to match --- exercises/ansible_rhel/{README.ja.md => README_ja.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename exercises/ansible_rhel/{README.ja.md => README_ja.md} (100%) diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README_ja.md similarity index 100% rename from exercises/ansible_rhel/README.ja.md rename to exercises/ansible_rhel/README_ja.md From 1d7b81b66d37561d557d533b13767e2d49caad27 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:11:16 -0400 Subject: [PATCH 31/50] attempt two --- exercises/ansible_rhel/{README_ja.md => README.ja} | 2 +- exercises/ansible_rhel/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename exercises/ansible_rhel/{README_ja.md => README.ja} (99%) diff --git a/exercises/ansible_rhel/README_ja.md b/exercises/ansible_rhel/README.ja similarity index 99% rename from exercises/ansible_rhel/README_ja.md rename to exercises/ansible_rhel/README.ja index a9ef76130..d282bf91b 100644 --- a/exercises/ansible_rhel/README_ja.md +++ b/exercises/ansible_rhel/README.ja @@ -8,7 +8,7 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). ## プレゼンテーション資料 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 6fe9e4115..6a1b49fa5 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -8,7 +8,7 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README_ja.md). +**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). ## Presentations From 51a2d129d838f793956cdda7591aee20eb5debf9 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:19:05 -0400 Subject: [PATCH 32/50] Update _config.yml --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index c9506d02b..0c6980676 100644 --- a/_config.yml +++ b/_config.yml @@ -4,3 +4,4 @@ exclude: - "*.yaml" include: - "exercises/ansible_network/2-first-playbook/router_configs.yml" + - "*.ja" From 6f0739ccaaf103b59f352d896d7aaa235d5b525f Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 12:30:32 -0400 Subject: [PATCH 33/50] multi attempts for japanese to render --- .../1.1-setup/{README.ja.md => README-ja.md} | 14 ++-- exercises/ansible_rhel/1.1-setup/README.md | 12 ++-- exercises/ansible_rhel/1.2-adhoc/README.md | 64 ++++++++++--------- .../{README.ja.md => japanREADME.md} | 63 +++++++++--------- exercises/ansible_rhel/1.3-playbook/README.md | 22 ++++--- .../{README.ja.md => japan_README.md} | 22 ++++--- 6 files changed, 104 insertions(+), 93 deletions(-) rename exercises/ansible_rhel/1.1-setup/{README.ja.md => README-ja.md} (94%) rename exercises/ansible_rhel/1.2-adhoc/{README.ja.md => japanREADME.md} (96%) rename exercises/ansible_rhel/1.3-playbook/{README.ja.md => japan_README.md} (98%) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README-ja.md similarity index 94% rename from exercises/ansible_rhel/1.1-setup/README.ja.md rename to exercises/ansible_rhel/1.1-setup/README-ja.md index f7f54670b..7b02dfef4 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README-ja.md @@ -1,5 +1,7 @@ # Exercise 1.1 - 要件を確認してみよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). + ## ラボ環境について このラボでは、事前設定されたラボ環境で作業します。 以下のホストにアクセスできます。 @@ -16,13 +18,13 @@ SSHでログインできます。: > **Warning** -> +> > **11.22.33.44** のような文字列を、個々に提供されているStudent情報に記載の **IP** などへ読み替えてください。 **X** は student**X** といった具合です. ssh studentX@11.22.33.44 > **Tip** -> +> > パスワードは **ansible** です。 rootになるには以下のように実行してください。: @@ -44,7 +46,7 @@ Ansibleが適切にInstallされているかを確認しましょう。 [...] > **Note** -> +> > Ansibleは構成管理を単純にしてくれます。 Ansibleはデータベースや実行用のデーモンを必要とせず、ラップトップでも簡単に実行できます。 管理対象ホストでは、実行用の常駐エージェントなども不要です。 rootアカウントからログアウトします。 @@ -53,7 +55,7 @@ rootアカウントからログアウトします。 logout > **Note** -> +> > 以降のすべての演習では、明示的な指示がない限り、コントロールノードのstudent\ ユーザーとして作業してください。 ## Step 1.2 - Working the Labs @@ -63,12 +65,12 @@ rootアカウントからログアウトします。 - すべて手で入力するのではなく、必要に応じてブラウザからコピー&ペーストしてください。しかし、考えたり理解したりするのをやめたりしないでください。 - すべてのラボは **Vim** を使って準備しましたが、みんながそれを愛しているわけではないことを理解しています。 **Midnight Commander** などを利用することができます。(**mc**を 実行すると実行できます。ファンクションキーはEsc-\でアクセスするかマウスでクリックすることでアクセスできます。)。または **Nano**(**nano**を実行)なども利用できます。 簡単な[editor intro]も用意してあります。(../ 0.0-support-docs / editor_intro.md) - + ## Step 1.3 - チャレンジLabs -このラボガイドの様々な章で「チャレンジラボ」セクションがあります。 +このラボガイドの様々な章で「チャレンジラボ」セクションがあります。 これらのラボは、これまでに学んだことを使って解決するための様々なタスクを用意しています。 それぞれのラボの解答案は、`Warning`サインより下に記述されています。 diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 9513e2baa..b916c3170 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,5 +1,7 @@ # Exercise 1.1 - Check the Prerequisites +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). + ## Your Lab Environment In this lab you work in a pre-configured lab environment. You will have access to the following hosts: @@ -16,13 +18,13 @@ In this lab you work in a pre-configured lab environment. You will have access t Login to your control host via SSH: > **Warning** -> +> > Replace **11.22.33.44** by your **IP** provided to you, and the **X** in student**X** by the student number provided to you. ssh studentX@11.22.33.44 > **Tip** -> +> > The password is **ansible** Then become root: @@ -44,7 +46,7 @@ Check Ansible has been installed correctly [...] > **Note** -> +> > Ansible is keeping configuration management simple. Ansible requires no database or running daemons and can run easily on a laptop. On the managed hosts it needs no running agent. Log out of the root account again: @@ -53,7 +55,7 @@ Log out of the root account again: logout > **Note** -> +> > In all subsequent exercises you should work as the student\ user on the control node if not explicitly told differently. ## Step 1.2 - Working the Labs @@ -65,7 +67,7 @@ You might have guessed by now this lab is pretty commandline-centric…​ :-) - All labs where prepared using **Vim**, but we understand not everybody loves it. Feel free to use alternative editors, in the lab environment we provide **Midnight Commander** (just run **mc**, function keys can be reached via Esc-\ or simply clicked with the mouse) or **Nano** (run **nano**). Here is a short [editor intro](../0.0-support-docs/editor_intro.md). > **Tip** -> +> > In the lab guide commands you are supposed to run are shown with or without the expected output, whatever makes more sense in the context. ## Step 1.3 - Challenge Labs diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index cffbaf1f8..870e24554 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Running Ad-hoc commands +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). + For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. ## Step 2.1 - Work with your Inventory @@ -45,7 +47,7 @@ An inventory file can contain a lot more information, it can organize your hosts AS you see it is ok to put systems in more than one group, for instance a server could be both a web server and a database server. Note that in Ansible the groups are not necessarily hierarchical. > **Tip** -> +> > The inventory can contain more data. E.g. if you have hosts that run on non-standard SSH ports you can put the port number after the hostname with a colon. Or you could define names specific to Ansible and have them point to the "real" IP or hostname. ## Step 2.2 - The Ansible Configuration Files @@ -53,7 +55,7 @@ AS you see it is ok to put systems in more than one group, for instance a server The behavior of Ansible can be customized by modifying settings in Ansible’s ini-style configuration file. Ansible will select its configuration file from one of several possible locations on the control node, please refer to the [documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html). > **Tip** -> +> > The recommended practice is to create an `ansible.cfg` file in the directory from which you run Ansible commands. This directory would also contain any files used by your Ansible project, such as the inventory and Playbooks. Another practice is to create a file `.ansible.cfg` in your home directory. In the lab environment provided to you an `.ansible.cfg` file has already been created and filled with the necessary details in the home directory of your `student` user on the control node: @@ -66,7 +68,7 @@ In the lab environment provided to you an `.ansible.cfg` file has already been c Output the content of the file: ```bash -[student@ansible ~]$ cat .ansible.cfg +[student@ansible ~]$ cat .ansible.cfg [defaults] stdout_callback = yaml connection = smart @@ -79,7 +81,7 @@ inventory = /home/student/lab_inventory/hosts There are multiple configuration flags provided. Most of them are not of interest here, but make sure to note the last line: there the location of the inventory is provided. That is the way Ansible knew in the previous commands what machines to connect to. -Output the content of your dedicated inventory to proof-read +Output the content of your dedicated inventory to proof-read ```bash [student@ansible ~]$ cat /home/student/lab_inventory/hosts @@ -98,19 +100,19 @@ ansible ansible_host=44.55.66.77 ``` > **Tip** -> +> > Note that each student has an individual lab environment. The ip addresses shown above are only an example, the ip addresses of your individual environment are different. As with the other cases, replace **\** with your actual student number. ## Step 2.3 - Ping a host > **Warning** -> +> > **Don’t forget to run the commands from the home directory of your student user, `/home/student`. That is where your `.ansible.cfg` file is located, without it Ansible will not know what which inventory to use.** Let's start with something really basic - pinging a host. To do that we use the Ansible `ping` module. The `ping` module makes sure our web hosts are responsive. Basically, it connects to the managed host, executes a small script there and collects the results. That way it is ensured that the managed host is reachable and that Ansible is able to execute commands properly on it. > **Tip** -> +> > Think of a module as a tool which is designed to accomplish a specific task. Ansible needs to know that it should use the `ping` module: The `-m` option defines which Ansible module to use. Options can be passed to the specified modul using the `-a` option. @@ -120,8 +122,8 @@ Ansible needs to know that it should use the `ping` module: The `-m` option defi node2 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" - }, - "changed": false, + }, + "changed": false, "ping": "pong" } [...] @@ -138,7 +140,7 @@ Ansible comes with a lot of modules by default. To list all modules run: ``` > **Tip** -> +> > In `ansible-doc` leave by pressing the button `q`. Use the `up`/`down` arrows to scroll through the content. To find a module try e.g.: @@ -154,7 +156,7 @@ Get help for a specific module including usage examples: ``` > **Tip** -> +> > Mandatory options are marked by a "=" in `ansible-doc`. ## Step 2.5 - Use the command module: @@ -181,7 +183,7 @@ Sometimes it’s desirable to have the output for a host on one line: ``` > **Tip** -> +> > Like many Linux commands, `ansible` allows for long-form options as well as short-form. For example `ansible web --module-name ping` is the same as running `ansible web -m ping`. We are going to be using the short-form options throughout this workshop. ## Step 2.6 - The copy module and permissions @@ -191,7 +193,7 @@ Using the `copy` module, execute an ad hoc command on `node1` to change the cont Run: > **Warning** -> +> > **Expect an error\!** ```bash @@ -214,7 +216,7 @@ The output of the ad hoc command is screaming **FAILED** in red at you. Why? Bec Now this is a case for privilege escalation and the reason `sudo` has to be setup properly. We need to instruct ansible to use `sudo` to run the command as root by using the parameter `-b` (think "become"). > **Tip** -> +> > Ansible will connect to the machines using your current user name (student\ in this case), just like SSH would. To override the remote user name, you could use the `-u` parameter. For us it’s okay to connect as `student` because `sudo` is set up. Change the command to use the `-b` parameter and run again: @@ -227,18 +229,18 @@ This time the command is a success: ```bash node1 | CHANGED => { - "changed": true, - "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", - "dest": "/etc/motd", - "gid": 0, - "group": "root", - "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", - "mode": "0644", - "owner": "root", - "secontext": "system_u:object_r:etc_t:s0", - "size": 19, - "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", - "state": "file", + "changed": true, + "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", + "dest": "/etc/motd", + "gid": 0, + "group": "root", + "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", + "mode": "0644", + "owner": "root", + "secontext": "system_u:object_r:etc_t:s0", + "size": 19, + "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", + "state": "file", "uid": 0 ``` @@ -257,25 +259,25 @@ Run the `ansible node1 -m copy …​` command from above again. Note: - The first line says `SUCCESS` instead of `CHANGED`. > **Tip** -> +> > This makes it a lot easier to spot changes and what Ansible actually did. ## Challenge Lab: Modules - Using `ansible-doc` - + - Find a module that uses Yum to manage software packages. - + - Look up the help examples for the module to learn how to install a package in the latest version. - Run an Ansible ad hoc command to install the package "screen" in the latest version on `node1`. > **Tip** -> +> > Use the copy ad hoc command from above as a template and change the module and options. > **Warning** -> +> > **Solution below\!** ```bash diff --git a/exercises/ansible_rhel/1.2-adhoc/README.ja.md b/exercises/ansible_rhel/1.2-adhoc/japanREADME.md similarity index 96% rename from exercises/ansible_rhel/1.2-adhoc/README.ja.md rename to exercises/ansible_rhel/1.2-adhoc/japanREADME.md index 355a90830..2bf8f67bd 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.ja.md +++ b/exercises/ansible_rhel/1.2-adhoc/japanREADME.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). + 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 1つか2つ程度のタスクをたくさんのリモートノードに実行する必要がある時などにとても便利なコマンドです。 @@ -60,7 +62,7 @@ ansible ansible_host=44.55.66.77 Ansibleでは、グループが常に階層的である必要は無いことに注意してください。 > **Tip** -> +> > インベントリには様々なデータを含めることができます。例えば、標準的では無いSSHポートで動作するホストがある場合には、ホスト名の後にコロンをつけて利用したいポート番号を入力できます。もしくは、Ansibleで利用する固有の名前を定義し、それらと実IPを紐付けることもできます。 ## Step 1.2.2 - Ansibleの設定ファイルについて @@ -70,7 +72,7 @@ Ansibleはコントロールノード上のいくつかの設定可能な場所 こちらの [documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html)を参考にしてみてください。 > **Tip** -> +> > Ansibleコマンドを実行するディレクトリに`ansible.cfg`ファイルを作成・配置することが推奨されるやり方です。このディレクトリには、インベントリやPlaybookなどみなさんのAnsibleプロジェクトで利用されるファイルも含まれます。他にも、ホームディレクトリに`.ansible.cfg`を作成するやり方もあります。 みなさんに提供されているラボ環境では、コントロールノードの`student `ホームディレクトリに、`ansible.cfg`が必要な詳細な情報が記載され、すでに作成済みです。 @@ -84,7 +86,7 @@ Ansibleはコントロールノード上のいくつかの設定可能な場所 ファイルの内容を出力します。 ```bash -[student@ansible ~]$ cat .ansible.cfg +[student@ansible ~]$ cat .ansible.cfg [defaults] stdout_callback = yaml connection = smart @@ -117,14 +119,14 @@ ansible ansible_host=44.55.66.77 ``` > **Tip** -> +> > 各受講者はそれぞれ個別のラボ環境を持っていることに注意してください。テキストの結果に表示されているIPアドレスは例であり実際のものではありません。みなさん個々の環境の実際のIPアドレスは異なります。 他の場合と同様に、**\**をStudent Numberに置き換えてください。 ## Step 1.2.3 - Ping a host > **Warning** -> +> > **みなさんのラボ環境では、ホームディレクトリ `/home/student`でコマンドを実行することを忘れないでください。 そこは、あなたの `.ansible.cfg`ファイルがあるところです。それなしでは、Ansibleはどのインベントリを使うべきかを知ることはできません。** 基本的なところから始めていきましょう - ホストへのpingです。 @@ -133,7 +135,7 @@ Ansibleの`ping`モジュールを使ってみましょう。 基本的には、管理対象ホストへ接続し、そこで小さなスクリプトを実行させ結果を収集する動作をします。このモジュールが実行できれば、管理対象ホストに到達可能で、Ansibleが対象ホスト上でコマンドを正しく実行できることが確認できています。 > **Tip** -> +> > 特定のタスクを実行するために設計されたツールがモジュールだと考えてみてください。 Ansibleでは`ping`モジュールを使うべきです。`-m`オプションを用いてどのAnsibleモジュールを利用するかを定義します。`-a`を使うことで特定の文字列をオプションとしてモジュールに渡すこともできます。 @@ -143,8 +145,8 @@ Ansibleでは`ping`モジュールを使うべきです。`-m`オプションを node2 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" - }, - "changed": false, + }, + "changed": false, "ping": "pong" } [...] @@ -161,7 +163,7 @@ Ansibleにはたくさんのモジュールが準備されています。全て ``` > **Tip** -> +> > `ansible-doc` では、 `q` を押して終了してください。. `up`/`down`を用いることで、コンテンツをスクロールすることができます。 モジュールを探したい時には、次のようにしてみてください。: @@ -177,7 +179,7 @@ Ansibleにはたくさんのモジュールが準備されています。全て ``` > **Tip** -> +> > 必須のオプションは、`ansible-doc`内では "=" で表現されます。 ## Step 1.2.5 - コマンドモジュールを使ってみよう。 @@ -206,7 +208,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ ``` > **Tip** -> +> > 多くのLinuxコマンドのように、`ansible`は短い形式のオプションだけでなく長い形式にも対応しています。 例えば、`ansible web --module-name ping`は、`ansible web -m ping`と同じ意味となります。 このワークショップでは、短縮系のオプションが用いられます。 ## Step 1.2.6 - Copyモジュールとパーミッション @@ -216,7 +218,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ 実行してみましょう: > **Warning** -> +> > **おそらく失敗するでしょう!** ```bash @@ -239,7 +241,7 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ これは、権限昇格(privilege escalation)が必要なケースであり、`sudo`が適切に設定されなければならない理由でもあります。`sudo`を用いてrootとしてコマンドを実行するために、`-b`のパラメータを用います。("become"と考えてください) > **Tip** -> +> > Ansibleは、SSHと同じように、現在のユーザ名(今回の場合にはstudent\)を用いて接続しに行きます。リモートユーザ名を上書きするには`-u`のパラメータを使います。 今回のラボでは、`sudo`がすでに設定済みなので`student` で接続されても問題ありません。`-b`のパラメータを使ってもう一度実行してみましょう。 @@ -251,18 +253,18 @@ uid=1001(student1) gid=1001(student1) Gruppen=1001(student1) Kontext=unconfined_ ```bash node1 | CHANGED => { - "changed": true, - "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", - "dest": "/etc/motd", - "gid": 0, - "group": "root", - "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", - "mode": "0644", - "owner": "root", - "secontext": "system_u:object_r:etc_t:s0", - "size": 19, - "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", - "state": "file", + "changed": true, + "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", + "dest": "/etc/motd", + "gid": 0, + "group": "root", + "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", + "mode": "0644", + "owner": "root", + "secontext": "system_u:object_r:etc_t:s0", + "size": 19, + "src": "/home/student1/.ansible/tmp/ansible-tmp-1557857641.21-120920996103312/source", + "state": "file", "uid": 0 ``` @@ -280,25 +282,25 @@ Managed by Ansible - 最初の行が、`SUCCESS` から `CHANGED`に変わったはずです。 > **Tip** -> +> > これにより、どこが変更されて、Ansibleがなにをやったのかをとても簡単に見つけることができるようになります。 ## チャレンジラボ: Modules - `ansible-doc`を利用します。 - + - ソフトウェアパッケージを管理するために、Yumを利用できるモジュールを見つけてください。 - + - 最新バージョンのパッケージをインストールするためにはどうすれば良いのかをヘルプの例から探してみてください。 - Ansibleのアドホックコマンドを実行して、`node1`に`screen`の最新パッケージをインストールしてみてください。 > **Tip** -> +> > copyモジュールで実行したアドホックコマンドを参考にして、モジュールとオプションを変更すると良いでしょう。 > **Warning** -> +> > **以下は答えです\!** ```bash @@ -310,4 +312,3 @@ Managed by Ansible ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index 8f1cd971f..817e0ccaa 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - Writing Your First Playbook +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). + While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. Playbooks are files which describe the desired configurations or steps to implement on managed hosts. Playbooks can change lengthy, complex administrative tasks into easily repeatable routines with predictable and successful outcomes. @@ -9,7 +11,7 @@ A playbook is where you can take some of those ad-hoc commands you just ran and A playbook can have multiple plays and a play can have one or multiple tasks. In a task a *module* is called, like the modules in the previous chapter. The goal of a *play* is to map a group of hosts. The goal of a *task* is to implement modules against those hosts. > **Tip** -> +> > Here is a nice analogy: When Ansible modules are the tools in your workshop, the inventory is the materials and the Playbooks are the instructions. ## Step 3.1 - Playbook Basics @@ -29,13 +31,13 @@ There are some important concepts: - **become**: privilege escalation in Playbooks, same as using `-b` in the ad hoc command. > **Warning** -> +> > The ordering of the contents within a Playbook is important, because Ansible executes plays and tasks in the order they are presented. A Playbook should be **idempotent**, so if a Playbook is run once to put the hosts in the correct state, it should be safe to run it a second time and it should make no further changes to the hosts. > **Tip** -> +> > Most Ansible modules are idempotent, so it is relatively easy to ensure this is true. @@ -80,7 +82,7 @@ This shows one of Ansible’s strenghts: The Playbook syntax is easy to read and - We enable user privilege escalation with `become:`. > **Tip** -> +> > You obviously need to use privilege escalation to install a package or run any other task that requires root permissions. This is done in the Playbook by `become: yes`. Now that we've defined the play, let's add a task to get something done. We will add a task in which yum will ensure that the Apache package is installed in the latest version. Modify the file so that it looks like the following listing: @@ -97,19 +99,19 @@ Now that we've defined the play, let's add a task to get something done. We will state: latest ``` > **Tip** -> +> > Since playbooks are written in YAML, alignment of the lines and keywords is crucial. Make sure to vertically align the *t* in `task` with the *b* in `become`. Once you are more familiar with Ansible, make sure to take some time and study a bit the [YAML Syntax](http://docs.ansible.com/ansible/YAMLSyntax.html). In the added lines: - We started the tasks part with the keyword `tasks:`. - + - A task is named and the a module for the task is referenced. Here it uses the module "yum". - Parameters for the module are added: `name:` to identify the package name, and `state:` to define the wanted state of the package. > **Tip** -> +> > The module parameters are individual to each module. If in doubt, look them up again with `ansible-doc`. ## Step 3.3 - Running the Playbook @@ -133,7 +135,7 @@ Use SSH to make sure Apache has been installed on `node1`. The necessary IP addr [student@ansible ansible-files]$ grep node1 ~/lab_inventory/hosts node1 ansible_host=11.22.33.44 [student@ansible ansible-files]$ ssh 11.22.33.44 -student@11.22.33.44's password: +student@11.22.33.44's password: Last login: Wed May 15 14:03:45 2019 from 44.55.66.77 Managed by Ansible [student@node1 ~]$ rpm -qi httpd @@ -198,7 +200,7 @@ Note the output now: Some tasks are shown as "ok" in green and one is shown as " Check that the tasks were executed correctly and Apache is accepting connections: Make an HTTP request using Ansible’s `uri` module in an ad hoc command from the control node. Make sure to replace the **\** with the IP for the node from the inventory. > **Warning** -> +> > **Expect a lot of red lines and a 403 status\!** ```bash @@ -269,7 +271,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > The IP addresses shown here are just examples, your nodes will have different IP addresses. Change the Playbook to point to the group "web": diff --git a/exercises/ansible_rhel/1.3-playbook/README.ja.md b/exercises/ansible_rhel/1.3-playbook/japan_README.md similarity index 98% rename from exercises/ansible_rhel/1.3-playbook/README.ja.md rename to exercises/ansible_rhel/1.3-playbook/japan_README.md index 999735077..0fc3a2c7d 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.ja.md +++ b/exercises/ansible_rhel/1.3-playbook/japan_README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう +**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). + Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 Playbook(プレイブック)は、管理対象に対して実装したいこうなってほしいという構成や手順を記述したファイルです。Playbookを用いることで、長く複雑な管理タスクたちを、成功が予測される状態で、簡単にいつでも再現できるルーチンへと変えることができます。 @@ -27,13 +29,13 @@ PlaybookはYAML形式で書かれたテキストファイルです。 - **become**: アドホックコマンドで `-b` を用いるのと同様に、Playbook内で権限昇格させます。 > **Warning** -> +> > Ansibleはplayとtaskを表示されている順序で実行していくため、Playbook内のコンテンツの順序はとても重要です。 Playbookは**冪等性(べきとうせい。ある操作を1回行っても複数回行っても結果が同じになる性質)**を持っているべきです。一度、playbookを正しい状態にすべく実行されたのであれば、さらにもう一度playbookが実行された場合には安全であるべきです。そしてその際にはなんの変更もホストで発生するべきではありません。 > **Tip** -> +> > ほとんどのAnsibleモジュールはべき等性を持っているので、比較的簡単に正しいかどうかは確認できます。 ## Step 1.3.2 - ディレクトリの構成とPlaybook用のファイルを作成しよう @@ -84,7 +86,7 @@ Playbookの構造は、とても簡単で読みやすく、理解しやすいは - `become:`でユーザー権限の昇格を有効化しています。 > **Tip** -> +> > パッケージをインストールしたり、root権限を必要とする諸々のタスクを実行するには、いうまでもなく権限昇格が必要になります。これは、Playbookが`become: yes`であることで実行可能です。 Playの定義ができたので、何がしかのタスクを追加していきましょう。 @@ -103,19 +105,19 @@ Apacheのパッケージの最新版がインストールされていること state: latest ``` > **Tip** -> +> > PlaybookはYAMLで書かれているので、行とキーワードの位置関係は極めて重要です。`task`の *t*と、`become`の*b*が必ず縦に並ぶようによく確認してください。Ansibleに慣れてきたら、[YAML構文(YAML Syntax)](http://docs.ansible.com/ansible/YAMLSyntax.html)について少し時間をかけて勉強してみると良いでしょう。 追加された行は以下の通りです。: - Task箇所はキーワード`tasks`で始まっています。 - + - タスクには名前がつけられ、タスクのためのモジュールが参照されています。ここでは、"yum"モジュールが用いられています。 - モジュールに加えるパラメータが追加されました: `name: `はyumモジュールで管理されるパッケージの名称を指定しています。`state`はそのインストールされるパッケージの望ましい状態を定義しています。 - + > **Tip** -> +> > モジュールのパラメータは、それぞれのモジュールで固有なものです。よくわからない場合には、再度`ansible-doc`コマンドを用いて調べてみてください。 ## Step 1.3.3 - Playbookを実行してみる @@ -141,7 +143,7 @@ SSHを用いて`node1`でApacheが確かにインストールされているか [student@ansible ansible-files]$ grep node1 ~/lab_inventory/hosts node1 ansible_host=11.22.33.44 [student@ansible ansible-files]$ ssh 11.22.33.44 -student@11.22.33.44's password: +student@11.22.33.44's password: Last login: Wed May 15 14:03:45 2019 from 44.55.66.77 Managed by Ansible [student@node1 ~]$ rpm -qi httpd @@ -209,7 +211,7 @@ Playbookの次のパートでは、確かにApache Webserverが`node1`上で有 管理ノードから、Ad-hocコマンドでAnsibleの`uri`モジュールを使ってHTTPリクエストを実施します。 **\** を皆さんの環境のインベントリファイルのノード情報に置き換えて実行することに注意してください。 > **Warning** -> +> > **おそらく、たくさんの赤い文字列と403の文字が見えます\!** ```bash @@ -287,7 +289,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > 例示されているIPアドレスは単なる例であり、あなたのノードは異なるIPアドレスを持っているはずです。 Playbookをグループ`web`をさすように変更しましょう。 From 3333689181008170af4ac1a42f697b282bc8b257 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 16:44:29 -0400 Subject: [PATCH 34/50] testing --- exercises/ansible_rhel/1.1-setup/{README-ja.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename exercises/ansible_rhel/1.1-setup/{README-ja.md => README.ja.md} (97%) diff --git a/exercises/ansible_rhel/1.1-setup/README-ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md similarity index 97% rename from exercises/ansible_rhel/1.1-setup/README-ja.md rename to exercises/ansible_rhel/1.1-setup/README.ja.md index 7b02dfef4..333a8c90a 100644 --- a/exercises/ansible_rhel/1.1-setup/README-ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index b916c3170..05854c094 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](README-ja.md). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). ## Your Lab Environment From b17b0a4afd478bc9af172f54989c734315e68943 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Fri, 2 Aug 2019 16:46:40 -0400 Subject: [PATCH 35/50] bad k for j --- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 05854c094..33e2b3c33 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). +**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ja). ## Your Lab Environment From de371e7a7a2991fd4846564ba58977e781d783f4 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 12:50:03 -0400 Subject: [PATCH 36/50] trying fix --- exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index 333a8c90a..c9a97aeee 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ka). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 33e2b3c33..c26e6cade 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: [![uk](../../../images/uk.png) English](README), [![japan](../../../images/japan.png) 日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). ## Your Lab Environment From 163136721ea12f8033cd16bf7d6f7414e9342afb Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:06:16 -0400 Subject: [PATCH 37/50] fixing japanese support --- _config.yml | 6 ----- exercises/ansible_f5/1.0-explore/README.ja.md | 2 ++ exercises/ansible_f5/1.0-explore/README.md | 2 ++ .../ansible_f5/1.1-get-facts/README.ja.md | 4 ++- exercises/ansible_f5/1.1-get-facts/README.md | 2 ++ .../ansible_f5/1.2-add-node/README.ja.md | 10 ++++--- exercises/ansible_f5/1.2-add-node/README.md | 2 ++ .../ansible_f5/1.3-add-pool/README.ja.md | 6 +++-- exercises/ansible_f5/1.3-add-pool/README.md | 2 ++ .../1.4-add-pool-members/README.ja.md | 6 +++-- .../ansible_f5/1.4-add-pool-members/README.md | 2 ++ .../1.5-add-virtual-server/README.ja.md | 10 ++++--- .../1.5-add-virtual-server/README.md | 2 ++ .../ansible_f5/1.6-add-irules/README.ja.md | 8 +++--- exercises/ansible_f5/1.6-add-irules/README.md | 2 ++ .../1.7-save-running-config/README.ja.md | 2 ++ .../1.7-save-running-config/README.md | 2 ++ .../2.0-disable-pool-member/README.ja.md | 4 ++- .../2.0-disable-pool-member/README.md | 2 ++ .../2.1-delete-configuration/README.ja.md | 2 ++ .../2.1-delete-configuration/README.md | 2 ++ .../2.2-error-handling/README.ja.md | 16 +++++++----- .../ansible_f5/2.2-error-handling/README.md | 2 ++ .../ansible_f5/3.0-as3-intro/README.ja.md | 2 ++ exercises/ansible_f5/3.0-as3-intro/README.md | 2 ++ .../ansible_f5/3.1-as3-change/README.ja.md | 2 ++ exercises/ansible_f5/3.1-as3-change/README.md | 2 ++ .../ansible_f5/3.2-as3-delete/README.ja.md | 2 ++ exercises/ansible_f5/3.2-as3-delete/README.md | 2 ++ exercises/ansible_f5/README.ja.md | 2 ++ exercises/ansible_f5/README.md | 2 ++ .../1-explore/{README_ja.md => README.ja.md} | 2 ++ exercises/ansible_network/1-explore/README.md | 2 ++ .../{README_ja.md => README.ja.md} | 2 ++ .../2-first-playbook/README.md | 2 ++ .../3-facts/{README_ja.md => README.ja.md} | 2 ++ exercises/ansible_network/3-facts/README.md | 2 ++ exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- .../{japanREADME.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.2-adhoc/README.md | 2 +- .../{japan_README.md => README.ja.md} | 2 +- exercises/ansible_rhel/1.3-playbook/README.md | 2 +- .../ansible_rhel/1.4-variables/README.ja.md | 26 ++++++++++--------- .../ansible_rhel/1.4-variables/README.md | 24 +++++++++-------- .../ansible_rhel/1.5-handlers/README.ja.md | 21 ++++++++------- exercises/ansible_rhel/1.5-handlers/README.md | 2 ++ .../ansible_rhel/1.6-templates/README.ja.md | 7 ++--- .../ansible_rhel/1.6-templates/README.md | 6 +++-- exercises/ansible_rhel/1.7-role/README.ja.md | 4 ++- exercises/ansible_rhel/1.7-role/README.md | 2 ++ exercises/ansible_rhel/1.8-bonus/README.ja.md | 13 +++++----- exercises/ansible_rhel/1.8-bonus/README.md | 12 +++++---- .../ansible_rhel/{README.ja => README.ja.md} | 2 ++ exercises/ansible_rhel/README.md | 2 ++ 54 files changed, 172 insertions(+), 85 deletions(-) rename exercises/ansible_network/1-explore/{README_ja.md => README.ja.md} (97%) rename exercises/ansible_network/2-first-playbook/{README_ja.md => README.ja.md} (98%) rename exercises/ansible_network/3-facts/{README_ja.md => README.ja.md} (98%) rename exercises/ansible_rhel/1.2-adhoc/{japanREADME.md => README.ja.md} (99%) rename exercises/ansible_rhel/1.3-playbook/{japan_README.md => README.ja.md} (99%) rename exercises/ansible_rhel/{README.ja => README.ja.md} (94%) diff --git a/_config.yml b/_config.yml index 0c6980676..346aef9d8 100644 --- a/_config.yml +++ b/_config.yml @@ -1,7 +1 @@ theme: jekyll-theme-dinky -exclude: - - "*.yml" - - "*.yaml" -include: - - "exercises/ansible_network/2-first-playbook/router_configs.yml" - - "*.ja" diff --git a/exercises/ansible_f5/1.0-explore/README.ja.md b/exercises/ansible_f5/1.0-explore/README.ja.md index b107c522c..cf36a127c 100644 --- a/exercises/ansible_f5/1.0-explore/README.ja.md +++ b/exercises/ansible_f5/1.0-explore/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.0 - 演習環境の確認 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 演習を開始する前にぜひ Ansible Slack へ参加してください!(任意) - [クリックして ansiblejp slack (日本語) へ参加](https://bit.ly/slack-ansiblejp) diff --git a/exercises/ansible_f5/1.0-explore/README.md b/exercises/ansible_f5/1.0-explore/README.md index 7bdb98039..a7e7f8f6a 100644 --- a/exercises/ansible_f5/1.0-explore/README.md +++ b/exercises/ansible_f5/1.0-explore/README.md @@ -1,5 +1,7 @@ ### Exercise 1.0: Exploring the lab environment +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Before you get started, please join us on slack! [Click here to join the ansiblenetwork slack](https://join.slack.com/t/ansiblenetwork/shared_invite/enQtMzEyMTcxMTE5NjM3LWIyMmQ4YzNhYTA4MjA2OTRhZDQzMTZkNWZlN2E3NzhhMWQ5ZTdmNmViNjk2M2JkYzJjODhjMjVjMGUxZjc2MWE). This will allow you to chat with other network automation engineers and get help after the workshops concludes. #### Step 1 diff --git a/exercises/ansible_f5/1.1-get-facts/README.ja.md b/exercises/ansible_f5/1.1-get-facts/README.ja.md index c39a25adc..0e2e86b38 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.ja.md +++ b/exercises/ansible_f5/1.1-get-facts/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.1 - Ansible による F5 BIG-IP の情報収集 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -90,7 +92,7 @@ Ansible の playbook は **YAML** ファイルです。YAML は構造化され ## Step 4 -次に2つ目の `task` を追加します。 このタスクでは `debug` モジュールを使って、register +次に2つ目の `task` を追加します。 このタスクでは `debug` モジュールを使って、register された `bigip_device_facts variable` 変数の値を出力します。 {% raw %} diff --git a/exercises/ansible_f5/1.1-get-facts/README.md b/exercises/ansible_f5/1.1-get-facts/README.md index 92eec11ab..1fd0ed2cc 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.md +++ b/exercises/ansible_f5/1.1-get-facts/README.md @@ -1,5 +1,7 @@ # Exercise 1.1: Using the bigip_device_facts module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.2-add-node/README.ja.md b/exercises/ansible_f5/1.2-add-node/README.ja.md index 66d775907..2516d8a06 100644 --- a/exercises/ansible_f5/1.2-add-node/README.ja.md +++ b/exercises/ansible_f5/1.2-add-node/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.2 - ノードの追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -25,7 +27,7 @@ ## Step 2: -以下の定義を `bigip-node.yml` に入力します : +以下の定義を `bigip-node.yml` に入力します : ``` yaml --- @@ -73,12 +75,12 @@ - `name: CREATE NODES` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_node:` : 使用するモジュールを宣言しています。 `loop` を除く全てのものは、モジュールのドキュメント上で定義されている、モジュールパラメータです。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `host: "{{hostvars[item].ansible_host}}"` : モジュールへインベントリに登録済みのWebサーバーのIPアドレスを追加します。 -- `name: "{{hostvars[item].inventory_hostname}}"` : `inventory_hostname` をホスト名(host1、host2 となります)として使うことを指示します。 +- `name: "{{hostvars[item].inventory_hostname}}"` : `inventory_hostname` をホスト名(host1、host2 となります)として使うことを指示します。 - `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 - `loop:` : 与えられた一覧に対してタスクをループ実行することを指定します。この演習では、二つのRHELホストを含む webservers グループが一覧となります。 diff --git a/exercises/ansible_f5/1.2-add-node/README.md b/exercises/ansible_f5/1.2-add-node/README.md index a09b0a802..d820bdd48 100644 --- a/exercises/ansible_f5/1.2-add-node/README.md +++ b/exercises/ansible_f5/1.2-add-node/README.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Adding nodes to F5 BIG-IP +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.3-add-pool/README.ja.md b/exercises/ansible_f5/1.3-add-pool/README.ja.md index f7ccbd7ac..3e080bc43 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.ja.md +++ b/exercises/ansible_f5/1.3-add-pool/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.3 - プールの追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -71,9 +73,9 @@ - `name: CREATE POOL` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_pool:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `name: "http_pool"` : 作成するプールの名前を指定します。 - `lb_method: "round-robin"` : 負荷分散方式を round-robin に指定します。全ての設定可能な負荷分散方式は bigip_pool モジュールのドキュメンテーションで確認できます。 diff --git a/exercises/ansible_f5/1.3-add-pool/README.md b/exercises/ansible_f5/1.3-add-pool/README.md index 736ade7ce..67cb39ef3 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.md +++ b/exercises/ansible_f5/1.3-add-pool/README.md @@ -1,5 +1,7 @@ # Exercise 1.3 - Adding a load balancing pool +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md index cdde72811..0033998fd 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.4 - メンバーをプールへ追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -25,7 +27,7 @@ ## Step 2: -`bigip-pool-members.yml` へ、以下のプレイブック定義を記述します : +`bigip-pool-members.yml` へ、以下のプレイブック定義を記述します : ``` yaml --- @@ -72,7 +74,7 @@ - `name: ADD POOL MEMBERS` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_pool_member:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 - `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.md b/exercises/ansible_f5/1.4-add-pool-members/README.md index 3fddbde07..f7dcb7c32 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.md @@ -1,5 +1,7 @@ # Exercise 1.4: Adding members to a pool on F5 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md index eb9a47e31..3cb2030d3 100644 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.5 - Virtual Server の追加 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -27,7 +29,7 @@ Ansible のプレイブックは **YAML** 形式のファイルです。YAMLは構造化されたフォーマットで、非常に読み易いものです。 -以下の定義を `bigip-virtual-server.yml` に入力します : +以下の定義を `bigip-virtual-server.yml` に入力します : ``` yaml --- @@ -74,13 +76,13 @@ Ansible のプレイブックは **YAML** 形式のファイルです。YAMLは {% endraw %} ->プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 +>プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 - `name: ADD VIRTUAL SERVER` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_virtual_server:` : 使用するモジュールを宣言しています。 -- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 +- `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `name: "vip"` : vip という名前のVirtual Server を作成することを指定します。 - `destination"` : Virtual Server にIPアドレスを指定します。 diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.md b/exercises/ansible_f5/1.5-add-virtual-server/README.md index 180a739f9..1eb223f77 100755 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.md @@ -1,5 +1,7 @@ # Exercise 1.5: Using the bigip_virtual_server module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.6-add-irules/README.ja.md b/exercises/ansible_f5/1.6-add-irules/README.ja.md index d59608ece..d78f97f1b 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.ja.md +++ b/exercises/ansible_f5/1.6-add-irules/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.6 - iRules の追加と Virtual Server へのアタッチ +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -97,19 +99,19 @@ when HTTP_REQUEST { ``` {% endraw %} ->プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 +>プレイブックは一連のタスクから成ります。タスクとモジュールは1:1の関係性があります。モジュールは、Ansible API やansible / ansible-playbook から利用可能で、再利用可能なスタンドアロンスクリプトです。実行結果は、JSON文字列として標準出力へ出力されます。 - 変数 `'irules'` : 2つのiRules(つまり、'irule1'と'irule2')を設定します。 - `name: ADD iRules` : ユーザーが定義する説明文です。これは実行時に端末に表示されることになります。 - `bigip_irule:` : 使用するモジュールを宣言しています。 - `server: "{{private_ip}}"` : 接続先となるBIG-IPのIPアドレスを指定します。これはインベントリ内で `private_ip` として登録されているものです。 - `user: "{{ansible_user}}"` : BIG-IP へログインするユーザー名を指定します。 -- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 +- `password: "{{ansible_ssh_pass}}"` : BIG-IPへログインする際のパスワードを指定します。 - `server_port: 8443` : BIG-IPへ接続する際のポート番号を指定します。 - `module: ltm` : iRulesがBIG-IPのどの機能で使用するかを指定します。本演習では ltm を指定します。 - `name: "{{item}}"` : 'irule1'と 'irule2' という名前の iRules を登録することを指定します。 - `content: "{{lookup('file','{{item}}')}}" ` : [lookup plugin](https://docs.ansible.com/ansible/latest/plugins/lookup.html)を使って、iRulesに追加するコンテンツを指定します。 -- `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 +- `validate_certs: "no"` : (あくまで演習用ラボなので)SSL証明書の検証を行わないように設定します。 - `loop:` 与えられた iRules のリストに対してタスクを実行するように指定します。 ## Step 5 diff --git a/exercises/ansible_f5/1.6-add-irules/README.md b/exercises/ansible_f5/1.6-add-irules/README.md index 6b4ce3b53..4cf23aba7 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.md +++ b/exercises/ansible_f5/1.6-add-irules/README.md @@ -1,5 +1,7 @@ # Exercise 1.6: Using the bigip_irule module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/1.7-save-running-config/README.ja.md b/exercises/ansible_f5/1.7-save-running-config/README.ja.md index 3922b2f53..29340b5b9 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.ja.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.7 - コンフィグの保存 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/1.7-save-running-config/README.md b/exercises/ansible_f5/1.7-save-running-config/README.md index 61adc188e..8188306f4 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.md @@ -1,5 +1,7 @@ # Exercise 1.7: Using the bigip_config module +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md index 2c4dcd1f7..f5cc0ce01 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.0 - プールメンバーの無効化 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -137,7 +139,7 @@ HINT: Playbook 内で動的に各ファクト情報を簡易設定する方法 ヒント: when による条件分岐とループ と [BIG-IP pool member module](https://docs.ansible.com/ansible/latest/modules/bigip_pool_member_module.html)を参照してください。 - + ## Step 10 Playbook の実行 - コントロールホストへ戻り、以下のコマンドを実行します: diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.md b/exercises/ansible_f5/2.0-disable-pool-member/README.md index e852a99ba..a36aed323 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.md @@ -1,5 +1,7 @@ # Exercise 2.0 - Disabling a pool member +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md index cde3e06bf..297a12838 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.1 - モジュールの組み合わせを使用してBIG-IPの構成を削除する +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.md b/exercises/ansible_f5/2.1-delete-configuration/README.md index b49d1b4f7..9fe813689 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.md @@ -1,5 +1,7 @@ # Exercise 2.1: Using a combination of modules to delete configuration on the BIG-IP +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/2.2-error-handling/README.ja.md b/exercises/ansible_f5/2.2-error-handling/README.ja.md index 38d6602db..9d59cfcce 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.ja.md +++ b/exercises/ansible_f5/2.2-error-handling/README.ja.md @@ -1,5 +1,7 @@ # 演習 2.2 - モジュールの組み合わせを使用して適切なロールバックを実行する +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) @@ -36,7 +38,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ hosts: lb connection: local gather_facts: no - + ``` {% endraw %} @@ -90,7 +92,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -124,7 +126,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -165,7 +167,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -216,7 +218,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -278,7 +280,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES @@ -360,7 +362,7 @@ BIG-IPで設定のロールバックを実行するためのさまざまなモ password: "{{ansible_ssh_pass}}" server_port: "8443" validate_certs: "no" - + - name: Setup and graceful rollback BIG-IP configuration block: - name: CREATE NODES diff --git a/exercises/ansible_f5/2.2-error-handling/README.md b/exercises/ansible_f5/2.2-error-handling/README.md index 81b15cfbf..32e742aa5 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.md +++ b/exercises/ansible_f5/2.2-error-handling/README.md @@ -1,5 +1,7 @@ # Exercise 2.2: Using a combination of modules to perform a graceful rollback +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.0-as3-intro/README.ja.md b/exercises/ansible_f5/3.0-as3-intro/README.ja.md index 9ba63eaa4..34bb1f351 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.ja.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.0 - AS3の概要 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.0-as3-intro/README.md b/exercises/ansible_f5/3.0-as3-intro/README.md index f200397a8..bfd0c0142 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.md @@ -1,5 +1,7 @@ # Exercise 3.0 - Introduction to AS3 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.1-as3-change/README.ja.md b/exercises/ansible_f5/3.1-as3-change/README.ja.md index d7373e3ce..89f8d649e 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.ja.md +++ b/exercises/ansible_f5/3.1-as3-change/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.1 - AS3 による変更運用 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.1-as3-change/README.md b/exercises/ansible_f5/3.1-as3-change/README.md index ded3a4313..727aa68a5 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.md +++ b/exercises/ansible_f5/3.1-as3-change/README.md @@ -1,5 +1,7 @@ # Exercise 3.1 - Operational Change with AS3 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/3.2-as3-delete/README.ja.md b/exercises/ansible_f5/3.2-as3-delete/README.ja.md index 965d38f19..f1ce31502 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.ja.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.ja.md @@ -1,5 +1,7 @@ # 演習 3.2 - Web アプリケーションの削除 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## 目次 - [目的](#目的) diff --git a/exercises/ansible_f5/3.2-as3-delete/README.md b/exercises/ansible_f5/3.2-as3-delete/README.md index 5a17bec22..00b7377ff 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.md @@ -1,5 +1,7 @@ # Exercise 3.2 - Deleting a Web Application +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index 8e8046a44..2410805de 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,6 +4,8 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Presentation プレゼンテーション資料はこちらです: [Ansible F5 Workshop Deck](../../decks/ansible_f5.pdf) diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 94b6ac2ed..4fd350c68 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,6 +4,8 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Presentation Want the Presentation Deck? Its right here: [Ansible F5 Workshop Deck](../../decks/ansible_f5.pdf) diff --git a/exercises/ansible_network/1-explore/README_ja.md b/exercises/ansible_network/1-explore/README.ja.md similarity index 97% rename from exercises/ansible_network/1-explore/README_ja.md rename to exercises/ansible_network/1-explore/README.ja.md index f42b0598e..96f8e5ce8 100644 --- a/exercises/ansible_network/1-explore/README_ja.md +++ b/exercises/ansible_network/1-explore/README.ja.md @@ -1,5 +1,7 @@ # Exercise 1.0 - Anisbleのlab環境を確認してみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ラボを開始する前に、ぜひSlackに参加してみましょう! 今後のAnsibleの学習に役立つはずです。 ここでは日本のAnsibleユーザ会と2つのSlackチャンネルを紹介します。 diff --git a/exercises/ansible_network/1-explore/README.md b/exercises/ansible_network/1-explore/README.md index 40956972b..3417b8092 100644 --- a/exercises/ansible_network/1-explore/README.md +++ b/exercises/ansible_network/1-explore/README.md @@ -1,5 +1,7 @@ # Exercise 1 - Exploring the lab environment +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_network/2-first-playbook/README_ja.md b/exercises/ansible_network/2-first-playbook/README.ja.md similarity index 98% rename from exercises/ansible_network/2-first-playbook/README_ja.md rename to exercises/ansible_network/2-first-playbook/README.ja.md index df95d4c2e..1ad289fe4 100644 --- a/exercises/ansible_network/2-first-playbook/README_ja.md +++ b/exercises/ansible_network/2-first-playbook/README.ja.md @@ -1,5 +1,7 @@ # Exercise 2.0 - Routerのコンフィグを更新してみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansibleを用いて、ルータのコンフィグを更新することができます。 コンフィグファイルを機器へPushする方法や、コンフィグレーションを1列ごとにPushすることもできます。 diff --git a/exercises/ansible_network/2-first-playbook/README.md b/exercises/ansible_network/2-first-playbook/README.md index dde68225f..86d46b4f9 100644 --- a/exercises/ansible_network/2-first-playbook/README.md +++ b/exercises/ansible_network/2-first-playbook/README.md @@ -1,5 +1,7 @@ # Exercise 2 - First Ansible Playbook +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_network/3-facts/README_ja.md b/exercises/ansible_network/3-facts/README.ja.md similarity index 98% rename from exercises/ansible_network/3-facts/README_ja.md rename to exercises/ansible_network/3-facts/README.ja.md index 63bcc21f8..4a70f0aca 100644 --- a/exercises/ansible_network/3-facts/README_ja.md +++ b/exercises/ansible_network/3-facts/README.ja.md @@ -1,5 +1,7 @@ # Exercise 1.2 - Moduleのドキュメントの確認方法、 出力結果の登録方法、 tagの使い方 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 前のセクションでは、`ios_facts` と `debug` の使い方を学びました。 `debug` モジュールの使い方では、 `msg` と呼ばれるパラメータを設定しましたが、`ios_facts`モジュールについては特にそのようなものを設定しませんでした。 これらのモジュールに設定できるパラメータについて知りたいと思った場合、どうすれば良いでしょうか? diff --git a/exercises/ansible_network/3-facts/README.md b/exercises/ansible_network/3-facts/README.md index 08c44b479..d2dcada87 100644 --- a/exercises/ansible_network/3-facts/README.md +++ b/exercises/ansible_network/3-facts/README.md @@ -1,5 +1,7 @@ # Exercise 3: Ansible Facts +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Table of Contents - [Objective](#objective) diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index c9a97aeee..0011876a0 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.2-adhoc/japanREADME.md b/exercises/ansible_rhel/1.2-adhoc/README.ja.md similarity index 99% rename from exercises/ansible_rhel/1.2-adhoc/japanREADME.md rename to exercises/ansible_rhel/1.2-adhoc/README.ja.md index 2bf8f67bd..28e379e0e 100644 --- a/exercises/ansible_rhel/1.2-adhoc/japanREADME.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index 870e24554..069a533a3 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Running Ad-hoc commands -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japanREADME.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. diff --git a/exercises/ansible_rhel/1.3-playbook/japan_README.md b/exercises/ansible_rhel/1.3-playbook/README.ja.md similarity index 99% rename from exercises/ansible_rhel/1.3-playbook/japan_README.md rename to exercises/ansible_rhel/1.3-playbook/README.ja.md index 0fc3a2c7d..e9243a30f 100644 --- a/exercises/ansible_rhel/1.3-playbook/japan_README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index 817e0ccaa..cc1e40087 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Writing Your First Playbook -**Read this in other languages**: [![uk](../../../images/uk.png) English](README.md), [![japan](../../../images/japan.png) 日本語](japan_README.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. diff --git a/exercises/ansible_rhel/1.4-variables/README.ja.md b/exercises/ansible_rhel/1.4-variables/README.ja.md index e3e146f5e..52b790244 100644 --- a/exercises/ansible_rhel/1.4-variables/README.ja.md +++ b/exercises/ansible_rhel/1.4-variables/README.ja.md @@ -1,5 +1,7 @@ # 演習1.4 - 変数を使ってみよう +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 前回までは Ansible Engine の基礎部分を学習してきました。この演習では Playbook をより柔軟かつパワフルに使用できる、より高度なスキルを学びます。 Ansible では task をよりシンプル、かつ再利用可能にできます。システムの設定にはユニークな設定が含まれる場合があり、 @@ -25,7 +27,7 @@ Playbook では、変数名を二重中括弧で囲むことで変数を表現 > **ヒント** -> +> > ホスト変数には優先順位があります。上記 Host 変数は、 Group 変数より優先されます。詳しくは製品マニュアルをご確認ください。 ## ステップ 1.4.1 - 変数ファイルの作成 @@ -59,7 +61,7 @@ stage: prod - `web` group のすべてのサーバーに対して、変数 `stage` に値 `dev` が定義されます。そして dev (開発)をデフォルト値として定義します。 - - `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。 + - `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。 ## ステップ 1.4.2 - index.html ファイルの作成 @@ -88,7 +90,7 @@ stage: prod `deploy_index_html.yml` という名前の Playbook を `~/ansible-files/` ディレクトリ内に作成します。 > **ヒント** -> +> > コピーするファイル名の中に指定された変数 "stage" がホストごとに取る値に注意してください。 @@ -135,7 +137,7 @@ node3 ansible_host=33.44.55.66 ``` > **ヒント** -> +> > 鋭い人はちょっと思うかもしれません、”もっと柔軟にファイルの中身を変更出来たら・・・、と”。こちらについては次の章(template モジュール)で学びます! ## ステップ 1.4.5 - Ansible ファクト @@ -164,10 +166,10 @@ Ansibleがデフォルトでどのような事実を収集しているのか、 - 管理対象ホストのディストリビューション(Red Hat)を表示してください。ただし、結果は一行で出力してください。 > **ヒント** -> +> > grep を使ってファクトの中から必要な情報を探してみます。次に、 filter を使ってこのファクトのみの情報を抽出してみましょう。一行での表示の方法は ansible コマンドの -h (help) を使って調べてみましょう! - + > **答えは下記の通り\!** ```bash @@ -192,13 +194,13 @@ Ansibleがデフォルトでどのような事実を収集しているのか、 > **ヒント** -> +> > "debug" モジュールは変数や式を確認するのに有用です。 取得されたファクトがどのような形で表示されるか Playbook を実行してみてください。 ```bash -[student@ansible ansible-files]$ ansible-playbook facts.yml +[student@ansible ansible-files]$ ansible-playbook facts.yml PLAY [Output facts within a playbook] ****************************************** @@ -209,13 +211,13 @@ ok: [node1] ok: [ansible] TASK [Prints Ansible facts] **************************************************** -ok: [node1] => +ok: [node1] => msg: The default IPv4 address of node1 is 172.16.190.143 -ok: [node2] => +ok: [node2] => msg: The default IPv4 address of node2 is 172.16.30.170 -ok: [node3] => +ok: [node3] => msg: The default IPv4 address of node3 is 172.16.140.196 -ok: [ansible] => +ok: [ansible] => msg: The default IPv4 address of ansible is 172.16.2.10 PLAY RECAP ********************************************************************* diff --git a/exercises/ansible_rhel/1.4-variables/README.md b/exercises/ansible_rhel/1.4-variables/README.md index e01f6a8e6..fcca23a35 100644 --- a/exercises/ansible_rhel/1.4-variables/README.md +++ b/exercises/ansible_rhel/1.4-variables/README.md @@ -1,5 +1,7 @@ # Exercise 1.4 - Using Variables +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Previous exercises showed you the basics of Ansible Engine. In the next few exercises, we are going to teach some more advanced ansible skills that will add flexibility and power to your playbooks. @@ -25,7 +27,7 @@ The recommended practice to provide variables in the inventory is to define them - To define variables specifically for a host `node1`, the file `host_vars/node1` with the variable definitions is created. > **Tip** -> +> > Host variables take precedence over group variables (more about precedence can be found in the docs). ## Step 4.1 - Create Variable Files @@ -87,7 +89,7 @@ Now you need a Playbook that copies the prod or dev `index.html` file - accordin Create a new Playbook called `deploy_index_html.yml` in the `~/ansible-files/` directory. > **Tip** -> +> > Note how the variable "stage" is used in the name of the file to copy. @@ -134,7 +136,7 @@ node3 ansible_host=33.44.55.66 ``` > **Tip** -> +> > If by now you think: There has to be a smarter way to change content in files…​ you are absolutely right. This lab was done to introduce variables, you are about to learn about templates in one of the next chapters. ## Step 4.5 - Ansible Facts @@ -163,11 +165,11 @@ Or what about only looking for memory related facts: - Try to find and print the distribution (Red Hat) of your managed hosts. On one line, please. > **Tip** -> +> > Use grep to find the fact, then apply a filter to only print this fact. > **Warning** -> +> > **Solution below\!** ```bash @@ -192,13 +194,13 @@ Facts can be used in a Playbook like variables, using the proper naming, of cour > **Tip** -> +> > The "debug" module is handy for e.g. debugging variables or expressions. Execute it to see how the facts are printed: ```bash -[student@ansible ansible-files]$ ansible-playbook facts.yml +[student@ansible ansible-files]$ ansible-playbook facts.yml PLAY [Output facts within a playbook] ****************************************** @@ -209,13 +211,13 @@ ok: [node1] ok: [ansible] TASK [Prints Ansible facts] **************************************************** -ok: [node1] => +ok: [node1] => msg: The default IPv4 address of node1 is 172.16.190.143 -ok: [node2] => +ok: [node2] => msg: The default IPv4 address of node2 is 172.16.30.170 -ok: [node3] => +ok: [node3] => msg: The default IPv4 address of node3 is 172.16.140.196 -ok: [ansible] => +ok: [ansible] => msg: The default IPv4 address of ansible is 172.16.2.10 PLAY RECAP ********************************************************************* diff --git a/exercises/ansible_rhel/1.5-handlers/README.ja.md b/exercises/ansible_rhel/1.5-handlers/README.ja.md index 65d082540..0d2a93cbe 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.ja.md +++ b/exercises/ansible_rhel/1.5-handlers/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.5 - 条件分岐, ハンドラー、ループ実行 +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## ステップ 1.5.1 - 条件分岐 Ansible は特定の条件が満たされたときにタスクを実行したり再生したりすることができます。 @@ -25,7 +27,7 @@ Ansible は特定の条件が満たされたときにタスクを実行したり では早速やってみましょう。まず、デフォルトで指定されたインベントリファイル編集し、`ftpserver` グループに `node2` を入れます。 デフォルトのインベントリファイルは、 `/home/student/lightbulb/lessons/lab_inventory/student-instances.txt` でしたね。♪ - + 編集後は以下の様になります。node2 のIPアドレスはご自身ものを入力してください! ```ini @@ -62,7 +64,7 @@ ansible ansible_host=44.55.66.77 ``` > **ヒント** -> +> > 作成完了したら playbook を実行してみてください。やり方は・・・、もう分かってますね (^^♪ 実行した結果を確認してみてください。 `ftpserver` グループに記載された node2 以外のホストはタスクがスキップされ、node2 のみタスクの実行が行われていることが確認できます。 @@ -91,13 +93,13 @@ changed: [node2] まずはコピー元として利用する httpd.conf を node1 から取得します。 > **ヒント** -> +> >このファイルは既に node1 node2 node3 に配置されています。 ```bash [student@ansible ansible-files]$ scp :/etc/httpd/conf/httpd.conf ~/ansible-files/. -student@'s password: +student@'s password: httpd.conf ``` @@ -138,9 +140,9 @@ Listen 8080 ``` - Playbookをもう一度実行してください。興味深い結果が得られます。 - + - httpd.conf が上書きコピーされた - + - ハンドラーが呼び出され、 Apache サービスをリスタートした Apacheはポート8080でリッスンしているはずです。試してみてください。 @@ -156,17 +158,17 @@ curl: (7) Failed connect to :80; Connection refused httpd.conf ファイルを再度 "80" に変更し、どうなるか試してみてください。 > **注意** -> +> > 演習1.7で、ポート8080を使います。この時点で 80ポートをリッスンするよう設定を戻しておいてください。 > **ヒント** -> +> > よく聞かれる質問として、notify セクションが実行されたらすぐにハンドラーが呼び出されるのか?ということがありますが、これは違います。今回の場合、notify 直下にハンドラーが定義されているのですぐの実行となりますが、notiry とハンドラーが離れていた場合は、あくまで上から順に実行され、ハンドラーの順番になったところで実行されます。 notify でハンドラー実行のフラグを立てておく感じです。 ## ステップ 1.5.3 - 単純な繰り返し(ループ実行) -ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html) +ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html) ループの機能を確認してみましょう。 node1 に3人の新しいユーザーを作成します。 `~/ansible-files` ディレクトリの中に、 `loop_users.yml` という名前の playbook を作成します。使用するのは `user` モジュールで、playbook の中身は以下の通りです。 @@ -249,4 +251,3 @@ uid=1002(dev_user) gid=1002(dev_user) Gruppen=1002(dev_user),50(ftp) ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.5-handlers/README.md b/exercises/ansible_rhel/1.5-handlers/README.md index 30231d5b6..cc2173744 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.md +++ b/exercises/ansible_rhel/1.5-handlers/README.md @@ -1,5 +1,7 @@ # Exercise 1.5 - Conditionals, Handlers and Loops +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + ## Step 5.1 - Conditionals Ansible can use conditionals to execute tasks or plays when certain conditions are met. diff --git a/exercises/ansible_rhel/1.6-templates/README.ja.md b/exercises/ansible_rhel/1.6-templates/README.ja.md index 4e5ed3b80..515ff111d 100644 --- a/exercises/ansible_rhel/1.6-templates/README.ja.md +++ b/exercises/ansible_rhel/1.6-templates/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.6 - テンプレート +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansibleは、管理対象ホストにファイルをコピーする際、固定の内容ではなく変数に値を入力しながらコピーを行う様な事も可能です。例えば対象ホストユニークなホスト名などを含んだファイルのコピーを行うことが可能です。これを実現するのが Jinja2 テンプレートです。 Jinja2 は、Python で最も使用されているテンプレートエンジンの1つです。 () ## ステップ 1.6.1 - playbook 内でテンプレートを使用する @@ -55,7 +57,7 @@ Ansibleが変数をシステムから収取したファクト情報で変数を - 「Ansible ファクト」の章で学んだコマンドを使用して、カーネルバージョンを含むファクトを見つけます。 > **ヒント** -> +> > モジュールは `setup` ですね? `grep` 使って探してみましょう。 - 見つかったらその変数を表示するよう、テンプレートファイルに追記しましょう @@ -63,7 +65,7 @@ Ansibleが変数をシステムから収取したファクト情報で変数を - 再度 playbook を実行します - 再度 node1 にログインし、表示をチェックしてみてください - + > **答えは以下の通り** @@ -93,4 +95,3 @@ running kernel {{ ansible_kernel }}. ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.6-templates/README.md b/exercises/ansible_rhel/1.6-templates/README.md index f2026b7f0..73f6740c6 100644 --- a/exercises/ansible_rhel/1.6-templates/README.md +++ b/exercises/ansible_rhel/1.6-templates/README.md @@ -1,5 +1,7 @@ # Exercise 1.6 - Templates +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansible uses Jinja2 templating to modify files before they are distributed to managed hosts. Jinja2 is one of the most used template engines for Python (). ## Step 6.1 - Using Templates in Playbooks @@ -55,7 +57,7 @@ Add a line to the template to list the current kernel of the managed node. - Find a fact that contains the kernel version using the commands you learned in the "Ansible Facts" chapter. > **Tip** -> +> > Do a `grep -i` for kernel - Change the template to use the fact you found. @@ -65,7 +67,7 @@ Add a line to the template to list the current kernel of the managed node. - Check motd by logging in to node1 > **Warning** -> +> > **Solution below\!** diff --git a/exercises/ansible_rhel/1.7-role/README.ja.md b/exercises/ansible_rhel/1.7-role/README.ja.md index 0c9ba70e8..c1733d338 100644 --- a/exercises/ansible_rhel/1.7-role/README.ja.md +++ b/exercises/ansible_rhel/1.7-role/README.ja.md @@ -1,5 +1,7 @@ # 演習 1.7 - Roles: Playbook を再利用可能にする +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + 今までのワークショップで学習してきた通り、Playbook を1つのファイルに書くことは可能です。しかしそのうち、作成した Playbook を再利用したいと考えるようになると思います。 これを実現するのが Ansible の Roles です。Role という形で Playbook をパーツとして分解し、構造化されたディレクトリに納めるのです。詳しくはこちらの [ベストプラクティス](http://docs.ansible.com/ansible/playbooks_best_practices.html) をご確認ください。 @@ -20,7 +22,7 @@ apache/ ├── handlers │ └── main.yml ├── meta -│ └── main.yml +│ └── main.yml ├── README.md ├── tasks │ └── main.yml diff --git a/exercises/ansible_rhel/1.7-role/README.md b/exercises/ansible_rhel/1.7-role/README.md index df77e613c..135a1a94b 100644 --- a/exercises/ansible_rhel/1.7-role/README.md +++ b/exercises/ansible_rhel/1.7-role/README.md @@ -1,5 +1,7 @@ # Exercise 1.7 - Roles: Making your playbooks reusable +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + While it is possible to write a playbook in one file as we've done throughout this workshop, eventually you’ll want to reuse files and start to organize things. Ansible Roles is the way we do this. When you create a role, you deconstruct your playbook into parts and those parts sit in a directory structure. This is explained in more detail in the [best practice](http://docs.ansible.com/ansible/playbooks_best_practices.html) already mentioned in exercise 3. diff --git a/exercises/ansible_rhel/1.8-bonus/README.ja.md b/exercises/ansible_rhel/1.8-bonus/README.ja.md index beb75aed7..296c955bd 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.ja.md +++ b/exercises/ansible_rhel/1.8-bonus/README.ja.md @@ -1,11 +1,13 @@ # 演習 1.8 - ボーナスラボ +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + あなたは既にラボを完了しています・・・、が、さらに先に進みたい方は是非このボーナスラボにチャレンジしてみてください。 ## ステップ 1.8.1 - ボーナスラボ: アドホックコマンド アドホックコマンドを使って、適当なコメント付きで新しいユーザー "testuser" を `node1` と `node3` に作成します。`node2` に作成してはいけません。実行後、想定通り作成できていることも確認します。 - + - `ansible-doc user` を使ってモジュールのパラメータを確認します。 - アドホックコマンドを使ってコメント "Test D User" 付きのユーザーを作成します。 @@ -15,7 +17,7 @@ - ユーザーを削除し、それが削除されたことを確認します > **ヒント** -> +> > 権限昇格の記述を忘れないこと! > **答えは以下の通り** @@ -38,7 +40,7 @@ `httpd.conf` のリッスンポートを都度 vi 等で編集してコピーするのではなく、変数としてテンプレートの中で定義し、その変数の値を変数ファイルを使って与える方法について考えてみます。 - + - `listen_port` に変数を埋め込んだ `httpd.conf` ファイルを作成し、 `httpd.conf.j2` テンプレートを使って各 node に送付します。 - `web` グループのリッスンポートとして "8080" 、 `node2` のリッスンポートとして `80` を取るように変数ファイルを作成します。 @@ -104,13 +106,13 @@ Playbook `apache_config_tpl.yml` を以下の内容で作成します。 name: httpd state: restarted ``` - + ### 実行し確認します まずは playbook を実行し、curl コマンドで、 `node1` と `node3` にポート `8080` そして `node2` にポート `80` で接続してみます。 ```bash -[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml +[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml [...] [student1@ansible ansible-files]$ curl http://18.195.235.231:8080 @@ -125,4 +127,3 @@ Playbook `apache_config_tpl.yml` を以下の内容で作成します。 ---- [Ansible ワークショップ表紙に戻る](../README.ja.md) - diff --git a/exercises/ansible_rhel/1.8-bonus/README.md b/exercises/ansible_rhel/1.8-bonus/README.md index 845fb7104..53ee52732 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.md +++ b/exercises/ansible_rhel/1.8-bonus/README.md @@ -1,11 +1,13 @@ # Exercise 1.8 - Bonus Labs +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + You have finished the lab already. But it doesn’t have to end here. We prepared some slightly more advanced bonus labs for you to follow through if you like. So if you are done with the labs and still have some time, here are some more labs for you: ## Step 8.1 - Bonus Lab: Ad Hoc Commands Create a new user "testuser" on `node1` and `node3` with a comment using an ad hoc command, make sure that it is not created on `node2`! - + - Find the parameters for the appropriate module using `ansible-doc user` (leave with `q`) - Use an Ansible ad hoc command to create the user with the comment "Test D User" @@ -15,11 +17,11 @@ Create a new user "testuser" on `node1` and `node3` with a comment using an ad h - Delete the user and check it has been deleted > **Tip** -> +> > Remember privilege escalation…​ > **Warning** -> +> > **Solution below\!** Your commands could look like these: @@ -54,7 +56,7 @@ Instead of editing and copying `httpd.conf` why don’t you just define a variab > **Warning** -> +> > **Solution below\!** ### Define the variables: @@ -113,7 +115,7 @@ Create a playbook called `apache_config_tpl.yml`: First run the playbook itself, then run curl against `node1` with port `8080` and `node2` with port `80`. ```bash -[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml +[student1@ansible ansible-files]$ ansible-playbook apache_config_tpl.yml [...] [student1@ansible ansible-files]$ curl http://18.195.235.231:8080 diff --git a/exercises/ansible_rhel/README.ja b/exercises/ansible_rhel/README.ja.md similarity index 94% rename from exercises/ansible_rhel/README.ja rename to exercises/ansible_rhel/README.ja.md index d282bf91b..6816ca65b 100644 --- a/exercises/ansible_rhel/README.ja +++ b/exercises/ansible_rhel/README.ja.md @@ -1,5 +1,7 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux +**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja). + Ansibleはアプリケーションの展開、構成管理、オーケストレーションなどで利用できるシンプルでパワフルな自動化エンジンであり、すぐに習得することができます。 このラボの最初のセクションでは、Ansible Engineによる自動化の基礎からいくつかの先進的なコンセプトまでを学習します。 diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 6a1b49fa5..636487a5c 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,5 +1,7 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). + Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. In the first section of this lab you will learn to use Ansible Engine for automation from the basics up to some more advanced concepts. From bace1803ae636514c27aec235bfa86424c9ecf74 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:10:01 -0400 Subject: [PATCH 38/50] cleaning up yml support --- _config.yml | 7 +++++++ .../ansible_network/2-first-playbook/playbook.yml | 13 ------------- 2 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 exercises/ansible_network/2-first-playbook/playbook.yml diff --git a/_config.yml b/_config.yml index 346aef9d8..bdf71f92c 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,8 @@ theme: jekyll-theme-dinky +exclude: + - "*.yml" + - "*.yaml" +include: + - "exercises/ansible_network/playbook.yml" + - "exercises/ansible_network/3-facts/facts.yml" + - "exercises/ansible_network/4-jinja/config.yml" diff --git a/exercises/ansible_network/2-first-playbook/playbook.yml b/exercises/ansible_network/2-first-playbook/playbook.yml deleted file mode 100644 index 5d30d7df6..000000000 --- a/exercises/ansible_network/2-first-playbook/playbook.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: snmp ro/rw string configuration - hosts: cisco - gather_facts: no - - tasks: - - - name: ensure that the desired snmp strings are present - ios_config: - commands: - - snmp-server community ansible-public RO - - snmp-server community ansible-private RW - - snmp-server community ansible-test RO From 4cb1b73df8883bddbb87f0b6dcf4b7fa315ee61c Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:24:03 -0400 Subject: [PATCH 39/50] fixing errors with translation links --- _config.yml | 1 + exercises/ansible_f5/1.0-explore/README.ja.md | 2 +- exercises/ansible_f5/1.0-explore/README.md | 2 +- exercises/ansible_f5/1.1-get-facts/README.ja.md | 2 +- exercises/ansible_f5/1.1-get-facts/README.md | 2 +- exercises/ansible_f5/1.2-add-node/README.ja.md | 2 +- exercises/ansible_f5/1.2-add-node/README.md | 2 +- exercises/ansible_f5/1.3-add-pool/README.ja.md | 2 +- exercises/ansible_f5/1.3-add-pool/README.md | 2 +- exercises/ansible_f5/1.4-add-pool-members/README.ja.md | 2 +- exercises/ansible_f5/1.4-add-pool-members/README.md | 2 +- exercises/ansible_f5/1.5-add-virtual-server/README.ja.md | 4 ++-- exercises/ansible_f5/1.5-add-virtual-server/README.md | 2 +- exercises/ansible_f5/1.6-add-irules/README.ja.md | 2 +- exercises/ansible_f5/1.6-add-irules/README.md | 2 +- exercises/ansible_f5/1.7-save-running-config/README.ja.md | 2 +- exercises/ansible_f5/1.7-save-running-config/README.md | 2 +- exercises/ansible_f5/2.0-disable-pool-member/README.ja.md | 2 +- exercises/ansible_f5/2.0-disable-pool-member/README.md | 2 +- exercises/ansible_f5/2.1-delete-configuration/README.ja.md | 2 +- exercises/ansible_f5/2.1-delete-configuration/README.md | 2 +- exercises/ansible_f5/2.2-error-handling/README.ja.md | 2 +- exercises/ansible_f5/2.2-error-handling/README.md | 2 +- exercises/ansible_f5/3.0-as3-intro/README.ja.md | 2 +- exercises/ansible_f5/3.0-as3-intro/README.md | 2 +- exercises/ansible_f5/3.1-as3-change/README.ja.md | 2 +- exercises/ansible_f5/3.1-as3-change/README.md | 2 +- exercises/ansible_f5/3.2-as3-delete/README.ja.md | 2 +- exercises/ansible_f5/3.2-as3-delete/README.md | 2 +- exercises/ansible_f5/README.ja.md | 2 +- exercises/ansible_f5/README.md | 2 +- exercises/ansible_network/1-explore/README.ja.md | 2 +- exercises/ansible_network/1-explore/README.md | 2 +- exercises/ansible_network/2-first-playbook/README.ja.md | 2 +- exercises/ansible_network/2-first-playbook/README.md | 4 ++-- exercises/ansible_network/3-facts/README.ja.md | 2 +- exercises/ansible_network/3-facts/README.md | 2 +- exercises/ansible_rhel/1.1-setup/README.ja.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- exercises/ansible_rhel/1.2-adhoc/README.ja.md | 2 +- exercises/ansible_rhel/1.2-adhoc/README.md | 2 +- exercises/ansible_rhel/1.3-playbook/README.ja.md | 2 +- exercises/ansible_rhel/1.3-playbook/README.md | 2 +- exercises/ansible_rhel/1.4-variables/README.ja.md | 2 +- exercises/ansible_rhel/1.4-variables/README.md | 2 +- exercises/ansible_rhel/1.5-handlers/README.ja.md | 2 +- exercises/ansible_rhel/1.5-handlers/README.md | 2 +- exercises/ansible_rhel/1.6-templates/README.ja.md | 2 +- exercises/ansible_rhel/1.6-templates/README.md | 2 +- exercises/ansible_rhel/1.7-role/README.ja.md | 2 +- exercises/ansible_rhel/1.7-role/README.md | 2 +- exercises/ansible_rhel/1.8-bonus/README.ja.md | 2 +- exercises/ansible_rhel/1.8-bonus/README.md | 2 +- exercises/ansible_rhel/README.ja.md | 4 +--- exercises/ansible_rhel/README.md | 4 +--- 55 files changed, 57 insertions(+), 60 deletions(-) diff --git a/_config.yml b/_config.yml index bdf71f92c..19426486a 100644 --- a/_config.yml +++ b/_config.yml @@ -6,3 +6,4 @@ include: - "exercises/ansible_network/playbook.yml" - "exercises/ansible_network/3-facts/facts.yml" - "exercises/ansible_network/4-jinja/config.yml" + - workshops/exercises/ansible_network/3-facts/facts.yml diff --git a/exercises/ansible_f5/1.0-explore/README.ja.md b/exercises/ansible_f5/1.0-explore/README.ja.md index cf36a127c..13d7c12ac 100644 --- a/exercises/ansible_f5/1.0-explore/README.ja.md +++ b/exercises/ansible_f5/1.0-explore/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.0 - 演習環境の確認 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 演習を開始する前にぜひ Ansible Slack へ参加してください!(任意) diff --git a/exercises/ansible_f5/1.0-explore/README.md b/exercises/ansible_f5/1.0-explore/README.md index a7e7f8f6a..5772ee256 100644 --- a/exercises/ansible_f5/1.0-explore/README.md +++ b/exercises/ansible_f5/1.0-explore/README.md @@ -1,6 +1,6 @@ ### Exercise 1.0: Exploring the lab environment -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Before you get started, please join us on slack! [Click here to join the ansiblenetwork slack](https://join.slack.com/t/ansiblenetwork/shared_invite/enQtMzEyMTcxMTE5NjM3LWIyMmQ4YzNhYTA4MjA2OTRhZDQzMTZkNWZlN2E3NzhhMWQ5ZTdmNmViNjk2M2JkYzJjODhjMjVjMGUxZjc2MWE). This will allow you to chat with other network automation engineers and get help after the workshops concludes. diff --git a/exercises/ansible_f5/1.1-get-facts/README.ja.md b/exercises/ansible_f5/1.1-get-facts/README.ja.md index 0e2e86b38..69686ab13 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.ja.md +++ b/exercises/ansible_f5/1.1-get-facts/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.1 - Ansible による F5 BIG-IP の情報収集 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.1-get-facts/README.md b/exercises/ansible_f5/1.1-get-facts/README.md index 1fd0ed2cc..c882d3ab5 100644 --- a/exercises/ansible_f5/1.1-get-facts/README.md +++ b/exercises/ansible_f5/1.1-get-facts/README.md @@ -1,6 +1,6 @@ # Exercise 1.1: Using the bigip_device_facts module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.2-add-node/README.ja.md b/exercises/ansible_f5/1.2-add-node/README.ja.md index 2516d8a06..90d00e490 100644 --- a/exercises/ansible_f5/1.2-add-node/README.ja.md +++ b/exercises/ansible_f5/1.2-add-node/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.2 - ノードの追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.2-add-node/README.md b/exercises/ansible_f5/1.2-add-node/README.md index d820bdd48..8b705cb55 100644 --- a/exercises/ansible_f5/1.2-add-node/README.md +++ b/exercises/ansible_f5/1.2-add-node/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Adding nodes to F5 BIG-IP -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.3-add-pool/README.ja.md b/exercises/ansible_f5/1.3-add-pool/README.ja.md index 3e080bc43..591d804d6 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.ja.md +++ b/exercises/ansible_f5/1.3-add-pool/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.3 - プールの追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.3-add-pool/README.md b/exercises/ansible_f5/1.3-add-pool/README.md index 67cb39ef3..ab8d7d9de 100644 --- a/exercises/ansible_f5/1.3-add-pool/README.md +++ b/exercises/ansible_f5/1.3-add-pool/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Adding a load balancing pool -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md index 0033998fd..f35644c6b 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.ja.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.4 - メンバーをプールへ追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.4-add-pool-members/README.md b/exercises/ansible_f5/1.4-add-pool-members/README.md index f7dcb7c32..bcae8b59a 100644 --- a/exercises/ansible_f5/1.4-add-pool-members/README.md +++ b/exercises/ansible_f5/1.4-add-pool-members/README.md @@ -1,6 +1,6 @@ # Exercise 1.4: Adding members to a pool on F5 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md index 3cb2030d3..f45092fae 100644 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.5 - Virtual Server の追加 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 @@ -155,4 +155,4 @@ Virtual Serverは画面左のメニューから辿ることで確認できます ``` -これで本演習は終わりです。[演習ガイドへ戻る](../README.ja.md) +これで本演習は終わりです。[演習ガイドへ戻る](../README.ja.md.md) diff --git a/exercises/ansible_f5/1.5-add-virtual-server/README.md b/exercises/ansible_f5/1.5-add-virtual-server/README.md index 1eb223f77..7cb1a8c42 100755 --- a/exercises/ansible_f5/1.5-add-virtual-server/README.md +++ b/exercises/ansible_f5/1.5-add-virtual-server/README.md @@ -1,6 +1,6 @@ # Exercise 1.5: Using the bigip_virtual_server module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.6-add-irules/README.ja.md b/exercises/ansible_f5/1.6-add-irules/README.ja.md index d78f97f1b..f28bdcff5 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.ja.md +++ b/exercises/ansible_f5/1.6-add-irules/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.6 - iRules の追加と Virtual Server へのアタッチ -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.6-add-irules/README.md b/exercises/ansible_f5/1.6-add-irules/README.md index 4cf23aba7..edf92e1d8 100644 --- a/exercises/ansible_f5/1.6-add-irules/README.md +++ b/exercises/ansible_f5/1.6-add-irules/README.md @@ -1,6 +1,6 @@ # Exercise 1.6: Using the bigip_irule module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/1.7-save-running-config/README.ja.md b/exercises/ansible_f5/1.7-save-running-config/README.ja.md index 29340b5b9..d427ce7f4 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.ja.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.7 - コンフィグの保存 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/1.7-save-running-config/README.md b/exercises/ansible_f5/1.7-save-running-config/README.md index 8188306f4..f4ffaf957 100644 --- a/exercises/ansible_f5/1.7-save-running-config/README.md +++ b/exercises/ansible_f5/1.7-save-running-config/README.md @@ -1,6 +1,6 @@ # Exercise 1.7: Using the bigip_config module -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md index f5cc0ce01..171bd13cd 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.0 - プールメンバーの無効化 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.0-disable-pool-member/README.md b/exercises/ansible_f5/2.0-disable-pool-member/README.md index a36aed323..182bb6ad5 100644 --- a/exercises/ansible_f5/2.0-disable-pool-member/README.md +++ b/exercises/ansible_f5/2.0-disable-pool-member/README.md @@ -1,6 +1,6 @@ # Exercise 2.0 - Disabling a pool member -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md index 297a12838..a7e74e6c9 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.ja.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.1 - モジュールの組み合わせを使用してBIG-IPの構成を削除する -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.1-delete-configuration/README.md b/exercises/ansible_f5/2.1-delete-configuration/README.md index 9fe813689..ab75e5031 100644 --- a/exercises/ansible_f5/2.1-delete-configuration/README.md +++ b/exercises/ansible_f5/2.1-delete-configuration/README.md @@ -1,6 +1,6 @@ # Exercise 2.1: Using a combination of modules to delete configuration on the BIG-IP -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/2.2-error-handling/README.ja.md b/exercises/ansible_f5/2.2-error-handling/README.ja.md index 9d59cfcce..c1953ee7a 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.ja.md +++ b/exercises/ansible_f5/2.2-error-handling/README.ja.md @@ -1,6 +1,6 @@ # 演習 2.2 - モジュールの組み合わせを使用して適切なロールバックを実行する -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/2.2-error-handling/README.md b/exercises/ansible_f5/2.2-error-handling/README.md index 32e742aa5..1ac45853c 100644 --- a/exercises/ansible_f5/2.2-error-handling/README.md +++ b/exercises/ansible_f5/2.2-error-handling/README.md @@ -1,6 +1,6 @@ # Exercise 2.2: Using a combination of modules to perform a graceful rollback -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.0-as3-intro/README.ja.md b/exercises/ansible_f5/3.0-as3-intro/README.ja.md index 34bb1f351..8de902ec1 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.ja.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.0 - AS3の概要 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.0-as3-intro/README.md b/exercises/ansible_f5/3.0-as3-intro/README.md index bfd0c0142..0e78923af 100644 --- a/exercises/ansible_f5/3.0-as3-intro/README.md +++ b/exercises/ansible_f5/3.0-as3-intro/README.md @@ -1,6 +1,6 @@ # Exercise 3.0 - Introduction to AS3 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.1-as3-change/README.ja.md b/exercises/ansible_f5/3.1-as3-change/README.ja.md index 89f8d649e..dfbfae81f 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.ja.md +++ b/exercises/ansible_f5/3.1-as3-change/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.1 - AS3 による変更運用 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.1-as3-change/README.md b/exercises/ansible_f5/3.1-as3-change/README.md index 727aa68a5..8d6cb8b28 100644 --- a/exercises/ansible_f5/3.1-as3-change/README.md +++ b/exercises/ansible_f5/3.1-as3-change/README.md @@ -1,6 +1,6 @@ # Exercise 3.1 - Operational Change with AS3 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/3.2-as3-delete/README.ja.md b/exercises/ansible_f5/3.2-as3-delete/README.ja.md index f1ce31502..0e0e23bb7 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.ja.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.ja.md @@ -1,6 +1,6 @@ # 演習 3.2 - Web アプリケーションの削除 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## 目次 diff --git a/exercises/ansible_f5/3.2-as3-delete/README.md b/exercises/ansible_f5/3.2-as3-delete/README.md index 00b7377ff..cba8dd7a0 100644 --- a/exercises/ansible_f5/3.2-as3-delete/README.md +++ b/exercises/ansible_f5/3.2-as3-delete/README.md @@ -1,6 +1,6 @@ # Exercise 3.2 - Deleting a Web Application -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index 2410805de..bd4138c3c 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,7 +4,7 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Presentation プレゼンテーション資料はこちらです: diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 4fd350c68..1fd1e3be6 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,7 +4,7 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Presentation Want the Presentation Deck? Its right here: diff --git a/exercises/ansible_network/1-explore/README.ja.md b/exercises/ansible_network/1-explore/README.ja.md index 96f8e5ce8..3dc57bf2a 100644 --- a/exercises/ansible_network/1-explore/README.ja.md +++ b/exercises/ansible_network/1-explore/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.0 - Anisbleのlab環境を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ラボを開始する前に、ぜひSlackに参加してみましょう! 今後のAnsibleの学習に役立つはずです。 diff --git a/exercises/ansible_network/1-explore/README.md b/exercises/ansible_network/1-explore/README.md index 3417b8092..11ec62b5b 100644 --- a/exercises/ansible_network/1-explore/README.md +++ b/exercises/ansible_network/1-explore/README.md @@ -1,6 +1,6 @@ # Exercise 1 - Exploring the lab environment -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_network/2-first-playbook/README.ja.md b/exercises/ansible_network/2-first-playbook/README.ja.md index 1ad289fe4..f93546e6c 100644 --- a/exercises/ansible_network/2-first-playbook/README.ja.md +++ b/exercises/ansible_network/2-first-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 2.0 - Routerのコンフィグを更新してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleを用いて、ルータのコンフィグを更新することができます。 コンフィグファイルを機器へPushする方法や、コンフィグレーションを1列ごとにPushすることもできます。 diff --git a/exercises/ansible_network/2-first-playbook/README.md b/exercises/ansible_network/2-first-playbook/README.md index 86d46b4f9..6975abd03 100644 --- a/exercises/ansible_network/2-first-playbook/README.md +++ b/exercises/ansible_network/2-first-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 2 - First Ansible Playbook -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents @@ -226,7 +226,7 @@ snmp-server community ansible-test RO # Solution -The finished Ansible Playbook is provided here for an answer key: [playbook.yml](playbook.yml). +The finished Ansible Playbook is provided here for an answer key: [playbook.yml](../playbook.yml). --- diff --git a/exercises/ansible_network/3-facts/README.ja.md b/exercises/ansible_network/3-facts/README.ja.md index 4a70f0aca..4350491e1 100644 --- a/exercises/ansible_network/3-facts/README.ja.md +++ b/exercises/ansible_network/3-facts/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Moduleのドキュメントの確認方法、 出力結果の登録方法、 tagの使い方 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 前のセクションでは、`ios_facts` と `debug` の使い方を学びました。 `debug` モジュールの使い方では、 `msg` と呼ばれるパラメータを設定しましたが、`ios_facts`モジュールについては特にそのようなものを設定しませんでした。 diff --git a/exercises/ansible_network/3-facts/README.md b/exercises/ansible_network/3-facts/README.md index d2dcada87..cc5f592ab 100644 --- a/exercises/ansible_network/3-facts/README.md +++ b/exercises/ansible_network/3-facts/README.md @@ -1,6 +1,6 @@ # Exercise 3: Ansible Facts -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Table of Contents diff --git a/exercises/ansible_rhel/1.1-setup/README.ja.md b/exercises/ansible_rhel/1.1-setup/README.ja.md index 0011876a0..05bcae876 100644 --- a/exercises/ansible_rhel/1.1-setup/README.ja.md +++ b/exercises/ansible_rhel/1.1-setup/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.1 - 要件を確認してみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## ラボ環境について diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index c26e6cade..7af47f5f0 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README), ![japan](../../../images/japan.png)[日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png)[English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). ## Your Lab Environment diff --git a/exercises/ansible_rhel/1.2-adhoc/README.ja.md b/exercises/ansible_rhel/1.2-adhoc/README.ja.md index 28e379e0e..4aaa15af3 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.ja.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Ad-hoc コマンドを実行しよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 最初の演習では、Ansible がどのように動作するかを学習するために アドホック・コマンド を実行します。 Ansible Ad-hocコマンドは、プレイブックを作成しなくてもリモートノードへのタスク実行を可能にします。 diff --git a/exercises/ansible_rhel/1.2-adhoc/README.md b/exercises/ansible_rhel/1.2-adhoc/README.md index 069a533a3..7e4c7001d 100644 --- a/exercises/ansible_rhel/1.2-adhoc/README.md +++ b/exercises/ansible_rhel/1.2-adhoc/README.md @@ -1,6 +1,6 @@ # Exercise 1.2 - Running Ad-hoc commands -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). For our first exercise, we are going to run some ad-hoc commands to help you get a feel for how Ansible works. Ansible Ad-Hoc commands enable you to perform tasks on remote nodes without having to write a playbook. They are very useful when you simply need to do one or two things quickly and often, to many remote nodes. diff --git a/exercises/ansible_rhel/1.3-playbook/README.ja.md b/exercises/ansible_rhel/1.3-playbook/README.ja.md index e9243a30f..77556b3d2 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.ja.md +++ b/exercises/ansible_rhel/1.3-playbook/README.ja.md @@ -1,6 +1,6 @@ # Exercise 1.3 - 初めてのplaybookを書いてみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleのアドホックコマンドは単純なオペレーションの際にはとても役立ちますが、複雑な構成管理やオーケストレーションのシナリオには適していません。そのようなユースケースの時には、*playbooks*を用いてみると良いでしょう。 diff --git a/exercises/ansible_rhel/1.3-playbook/README.md b/exercises/ansible_rhel/1.3-playbook/README.md index cc1e40087..cb5e2121f 100644 --- a/exercises/ansible_rhel/1.3-playbook/README.md +++ b/exercises/ansible_rhel/1.3-playbook/README.md @@ -1,6 +1,6 @@ # Exercise 1.3 - Writing Your First Playbook -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). While Ansible ad hoc commands are useful for simple operations, they are not suited for complex configuration management or orchestration scenarios. For such use cases *playbooks* are the way to go. diff --git a/exercises/ansible_rhel/1.4-variables/README.ja.md b/exercises/ansible_rhel/1.4-variables/README.ja.md index 52b790244..98909ea61 100644 --- a/exercises/ansible_rhel/1.4-variables/README.ja.md +++ b/exercises/ansible_rhel/1.4-variables/README.ja.md @@ -1,6 +1,6 @@ # 演習1.4 - 変数を使ってみよう -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 前回までは Ansible Engine の基礎部分を学習してきました。この演習では Playbook をより柔軟かつパワフルに使用できる、より高度なスキルを学びます。 diff --git a/exercises/ansible_rhel/1.4-variables/README.md b/exercises/ansible_rhel/1.4-variables/README.md index fcca23a35..58f25dff1 100644 --- a/exercises/ansible_rhel/1.4-variables/README.md +++ b/exercises/ansible_rhel/1.4-variables/README.md @@ -1,6 +1,6 @@ # Exercise 1.4 - Using Variables -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Previous exercises showed you the basics of Ansible Engine. In the next few exercises, we are going to teach some more advanced ansible skills that will add flexibility and power to your playbooks. diff --git a/exercises/ansible_rhel/1.5-handlers/README.ja.md b/exercises/ansible_rhel/1.5-handlers/README.ja.md index 0d2a93cbe..d4b98e395 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.ja.md +++ b/exercises/ansible_rhel/1.5-handlers/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.5 - 条件分岐, ハンドラー、ループ実行 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## ステップ 1.5.1 - 条件分岐 diff --git a/exercises/ansible_rhel/1.5-handlers/README.md b/exercises/ansible_rhel/1.5-handlers/README.md index cc2173744..90aab7dbd 100644 --- a/exercises/ansible_rhel/1.5-handlers/README.md +++ b/exercises/ansible_rhel/1.5-handlers/README.md @@ -1,6 +1,6 @@ # Exercise 1.5 - Conditionals, Handlers and Loops -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). ## Step 5.1 - Conditionals diff --git a/exercises/ansible_rhel/1.6-templates/README.ja.md b/exercises/ansible_rhel/1.6-templates/README.ja.md index 515ff111d..361b2312b 100644 --- a/exercises/ansible_rhel/1.6-templates/README.ja.md +++ b/exercises/ansible_rhel/1.6-templates/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.6 - テンプレート -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansibleは、管理対象ホストにファイルをコピーする際、固定の内容ではなく変数に値を入力しながらコピーを行う様な事も可能です。例えば対象ホストユニークなホスト名などを含んだファイルのコピーを行うことが可能です。これを実現するのが Jinja2 テンプレートです。 Jinja2 は、Python で最も使用されているテンプレートエンジンの1つです。 () diff --git a/exercises/ansible_rhel/1.6-templates/README.md b/exercises/ansible_rhel/1.6-templates/README.md index 73f6740c6..1845bbfc7 100644 --- a/exercises/ansible_rhel/1.6-templates/README.md +++ b/exercises/ansible_rhel/1.6-templates/README.md @@ -1,6 +1,6 @@ # Exercise 1.6 - Templates -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansible uses Jinja2 templating to modify files before they are distributed to managed hosts. Jinja2 is one of the most used template engines for Python (). diff --git a/exercises/ansible_rhel/1.7-role/README.ja.md b/exercises/ansible_rhel/1.7-role/README.ja.md index c1733d338..12192d0f1 100644 --- a/exercises/ansible_rhel/1.7-role/README.ja.md +++ b/exercises/ansible_rhel/1.7-role/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.7 - Roles: Playbook を再利用可能にする -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). 今までのワークショップで学習してきた通り、Playbook を1つのファイルに書くことは可能です。しかしそのうち、作成した Playbook を再利用したいと考えるようになると思います。 diff --git a/exercises/ansible_rhel/1.7-role/README.md b/exercises/ansible_rhel/1.7-role/README.md index 135a1a94b..a36ee41e3 100644 --- a/exercises/ansible_rhel/1.7-role/README.md +++ b/exercises/ansible_rhel/1.7-role/README.md @@ -1,6 +1,6 @@ # Exercise 1.7 - Roles: Making your playbooks reusable -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). While it is possible to write a playbook in one file as we've done throughout this workshop, eventually you’ll want to reuse files and start to organize things. diff --git a/exercises/ansible_rhel/1.8-bonus/README.ja.md b/exercises/ansible_rhel/1.8-bonus/README.ja.md index 296c955bd..9fdc78df2 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.ja.md +++ b/exercises/ansible_rhel/1.8-bonus/README.ja.md @@ -1,6 +1,6 @@ # 演習 1.8 - ボーナスラボ -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). あなたは既にラボを完了しています・・・、が、さらに先に進みたい方は是非このボーナスラボにチャレンジしてみてください。 diff --git a/exercises/ansible_rhel/1.8-bonus/README.md b/exercises/ansible_rhel/1.8-bonus/README.md index 53ee52732..f2ceadd3a 100644 --- a/exercises/ansible_rhel/1.8-bonus/README.md +++ b/exercises/ansible_rhel/1.8-bonus/README.md @@ -1,6 +1,6 @@ # Exercise 1.8 - Bonus Labs -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). You have finished the lab already. But it doesn’t have to end here. We prepared some slightly more advanced bonus labs for you to follow through if you like. So if you are done with the labs and still have some time, here are some more labs for you: diff --git a/exercises/ansible_rhel/README.ja.md b/exercises/ansible_rhel/README.ja.md index 6816ca65b..8e02d2c11 100644 --- a/exercises/ansible_rhel/README.ja.md +++ b/exercises/ansible_rhel/README.ja.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). Ansibleはアプリケーションの展開、構成管理、オーケストレーションなどで利用できるシンプルでパワフルな自動化エンジンであり、すぐに習得することができます。 @@ -10,8 +10,6 @@ Ansibleはアプリケーションの展開、構成管理、オーケストレ これらのラボを完了させた時、あなたはAnsibleを用いた自動化の準備をできる状態になっているはずです。 -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). - ## プレゼンテーション資料 プレゼンテーション資料はこちら: diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 636487a5c..924ce5425 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. @@ -10,8 +10,6 @@ The second section of this lab covers Tower and provide the user an overview of After finishing this lab you are ready to start using Ansible for your automation requirements. -**Read this in other languages**: [![uk](../../images/uk.png) English](README.md), [![japan](../../images/japan.png) 日本語](README.ja). - ## Presentations Want the Presentation Deck? Its right here: From 1270da6999d3684835bf7118c123c60a5cab5034 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:32:42 -0400 Subject: [PATCH 40/50] fixing more errors and spacing issues --- _config.yml | 2 +- exercises/ansible_f5/README.ja.md | 2 +- exercises/ansible_f5/README.md | 2 +- exercises/ansible_rhel/1.1-setup/README.md | 2 +- exercises/ansible_rhel/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_config.yml b/_config.yml index 19426486a..75ccc9f66 100644 --- a/_config.yml +++ b/_config.yml @@ -6,4 +6,4 @@ include: - "exercises/ansible_network/playbook.yml" - "exercises/ansible_network/3-facts/facts.yml" - "exercises/ansible_network/4-jinja/config.yml" - - workshops/exercises/ansible_network/3-facts/facts.yml + - "workshops/exercises/ansible_network/3-facts/facts.yml" diff --git a/exercises/ansible_f5/README.ja.md b/exercises/ansible_f5/README.ja.md index bd4138c3c..2ea69a01b 100644 --- a/exercises/ansible_f5/README.ja.md +++ b/exercises/ansible_f5/README.ja.md @@ -4,7 +4,7 @@ これはインストラクターの講義、ハンズオン、自習などの様々な形式でワークショップトレーニングを提供することで、F5 BIG-IP を Ansible で自動化する機能を効果的に実証する多目的のコンテンツとなります。 -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). ## Presentation プレゼンテーション資料はこちらです: diff --git a/exercises/ansible_f5/README.md b/exercises/ansible_f5/README.md index 1fd1e3be6..e41d0eb2f 100644 --- a/exercises/ansible_f5/README.md +++ b/exercises/ansible_f5/README.md @@ -4,7 +4,7 @@ This content is a multi-purpose toolkit for effectively demonstrating Ansible's capabilities on F5 BIG-IP by providing workshop training in various forms -- instructor-led, hands-on or self-paced. -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README.md), ![japan](../../images/japan.png) [日本語](README.ja.md). ## Presentation Want the Presentation Deck? Its right here: diff --git a/exercises/ansible_rhel/1.1-setup/README.md b/exercises/ansible_rhel/1.1-setup/README.md index 7af47f5f0..ceb25174d 100644 --- a/exercises/ansible_rhel/1.1-setup/README.md +++ b/exercises/ansible_rhel/1.1-setup/README.md @@ -1,6 +1,6 @@ # Exercise 1.1 - Check the Prerequisites -**Read this in other languages**: ![uk](../../../images/uk.png)[English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). +**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md). ## Your Lab Environment diff --git a/exercises/ansible_rhel/README.md b/exercises/ansible_rhel/README.md index 924ce5425..d219f0ac0 100644 --- a/exercises/ansible_rhel/README.md +++ b/exercises/ansible_rhel/README.md @@ -1,6 +1,6 @@ # Ansible Workshop - Ansible for Red Hat Enterprise Linux -**Read this in other languages**: ![uk](../../../images/uk.png) [English](README), ![japan](../../../images/japan.png) [日本語](README.ja.md). +**Read this in other languages**: ![uk](../../images/uk.png) [English](README), ![japan](../../images/japan.png) [日本語](README.ja.md). Ansible is a simple yet powerful IT automation engine for application deployment, configuration management, and orchestration that you can learn quickly. From 1b0132b09cb94ca1dd655d89f9cf297da3747c36 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Sat, 3 Aug 2019 13:40:48 -0400 Subject: [PATCH 41/50] Update _config.yml --- _config.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/_config.yml b/_config.yml index 75ccc9f66..9cb685e60 100644 --- a/_config.yml +++ b/_config.yml @@ -1,9 +1,4 @@ theme: jekyll-theme-dinky exclude: - - "*.yml" - - "*.yaml" -include: - - "exercises/ansible_network/playbook.yml" - - "exercises/ansible_network/3-facts/facts.yml" - - "exercises/ansible_network/4-jinja/config.yml" - - "workshops/exercises/ansible_network/3-facts/facts.yml" + - "demos/*" + - "provisioner/*" From 80b8b9449a4393daa7822d8c59aed1d973c4d5fa Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:53:41 -0400 Subject: [PATCH 42/50] Update README.md adding more clear directions for documentation --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9272b7f2e..2c8e3c58a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,15 @@ The Red Hat Ansible Automation Workshops project is intended for effectively dem # SELF-PACED EXERCISES: - * [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop + - [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop + +# DOCUMENTATION: + + - [How to contribute](docs/contribute.md) + - [How to use the AWS Lab Provisioner](provisioner/readme.md) + - [FAQ](docs/faq.md) + + --- ![Red Hat Ansible Automation](images/rh-ansible-automation.png) From d2819586ff6358407378ed198875fe80d0dcc671 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:54:21 -0400 Subject: [PATCH 43/50] killing index.md so it defaults to readme.md --- index.md | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 index.md diff --git a/index.md b/index.md deleted file mode 100644 index 9272b7f2e..000000000 --- a/index.md +++ /dev/null @@ -1,22 +0,0 @@ -# RED HAT ANSIBLE WORKSHOPS - -The Red Hat Ansible Automation Workshops project is intended for effectively demonstrating Ansible's capabilities through instructor-led workshops or self-paced exercises. - - -# INSTRUCTOR LED WORKSHOPS: - -| Workshop | Presentation Deck | Exercises | Workshop Type Var | -|---|---|---|---| -| **Ansible Red Hat Enterprise Linux Workshop**
focused on automating Linux platforms like Red Hat Enterprise Linux | [Deck](https://ansible.github.io/workshops/decks/ansible_technical.pdf)
[Ansible Tower](https://ansible.github.io/workshops/decks/tower_intro.pdf) | [Exercises](./exercises/ansible_rhel) | `workshop_type: rhel` | -| **Ansible Network Automation Workshop**
focused on router and switch platforms like Arista, Cisco, Juniper | [Deck](https://ansible.github.io/workshops/decks/ansible_network.pdf) | [Exercises](./exercises/ansible_network) | `workshop_type: networking` | -| **Ansible F5 Workshop**
focused on automation of F5 BIG-IP | [Deck](https://ansible.github.io/workshops/decks/ansible_f5.pdf) | [Exercises](./exercises/ansible_f5) | `workshop_type: f5` | - -## LAB PROVISIONER - - [AWS Lab Provisioner](provisioner) - playbook that spins up instances on AWS for students to perform the exercises provided above. - -# SELF-PACED EXERCISES: - - * [Vagrant Demo](vagrant-demo) - Self-paced networking exercises that can be run on your personal laptop - ---- -![Red Hat Ansible Automation](images/rh-ansible-automation.png) From ec6d739a2f5937d23350235655d8b075acdee08f Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:56:41 -0400 Subject: [PATCH 44/50] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c8e3c58a..620023325 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ The Red Hat Ansible Automation Workshops project is intended for effectively dem # DOCUMENTATION: - [How to contribute](docs/contribute.md) - - [How to use the AWS Lab Provisioner](provisioner/readme.md) + - [How to use the AWS Lab Provisioner](provisioner/README.md) - [FAQ](docs/faq.md) From c27fd415cf908927aaf26aed77ee335b3a7665be Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 09:58:10 -0400 Subject: [PATCH 45/50] Update _config.yml --- _config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_config.yml b/_config.yml index 9cb685e60..24e750a5c 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,6 @@ theme: jekyll-theme-dinky +include: + - "provisioner/README.md" exclude: - "demos/*" - "provisioner/*" From 00f8734752d6b2dcc93ac3f5c830ec44dcec48ce Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:03:25 -0400 Subject: [PATCH 46/50] Update _config.yml --- _config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 24e750a5c..fdf220460 100644 --- a/_config.yml +++ b/_config.yml @@ -3,4 +3,6 @@ include: - "provisioner/README.md" exclude: - "demos/*" - - "provisioner/*" + - "provisioner/roles" + - "provisioner/group_vars" + - "provisioner/inventory" From 12472926a4e844b6181f3d930065aba81a89c39b Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:08:41 -0400 Subject: [PATCH 47/50] Update README.md --- provisioner/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/provisioner/README.md b/provisioner/README.md index 3f39c3c1e..c0f8617a7 100644 --- a/provisioner/README.md +++ b/provisioner/README.md @@ -1,5 +1,6 @@ # Ansible AWS training provisioner -**aws_lab_setup** is an automated lab setup for Ansible training on AWS (Amazon Web Services). Set the `workshop_type` variable below to provision the corresponding workshop. + +The `github.com/ansible/workshops` contains a provisioner `provision_lab.yml`, which is an automated lab setup for Ansible training on AWS (Amazon Web Services). Set the `workshop_type` variable below to provision the corresponding workshop. | Workshop | Deck | Exercises | Workshop Type Var | |---|---|---|---| @@ -17,7 +18,7 @@ - [FAQ](../docs/faq.md) # Requirements -- This provisioner must be run with Ansible Engine v2.7.0 or higher. +- This provisioner must be run with Ansible Engine v2.8.0 or higher. - AWS Account (follow directions on one time setup below) # Lab Setup @@ -70,7 +71,7 @@ For more extra_vars examples, look at the following: ## Accessing student documentation and slides - - Exercises and instructor slides are hosted at http://ansible.com/linklight + - Exercises and instructor slides are hosted at http://ansible.github.io/workshops - Workbench information is stored in two places after you provision: - in a local directory named after the workshop (e.g. TESTWORKSHOP/instructor_inventory) - if `create_login_page: true` is enabled, there will be a website ec2_name_prefix.workshop_dns_zone (e.g. TESTWORKSHOP.rhdemo.io) @@ -86,4 +87,5 @@ To destroy all the EC2 instances after training is complete: ansible-playbook teardown_lab.yml -e @extra_vars.yml # FAQ + For frequently asked questions see the [FAQ](../docs/faq.md) From 7aaddbeaf6b481bf4fb0718c41a741adf4d01b55 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:15:58 -0400 Subject: [PATCH 48/50] Update contribute.md --- docs/contribute.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/contribute.md b/docs/contribute.md index 0dae742cd..b9c03f022 100644 --- a/docs/contribute.md +++ b/docs/contribute.md @@ -7,14 +7,17 @@ We take pull requests! What is a pull request? More info on PRs: [https://help.github.com/en/articles/about-pull-requests](https://help.github.com/en/articles/about-pull-requests) ## Create a fork! + Create a fork on your own Github project (or your personal space) [Github Documentation on Forking a repo](https://help.github.com/articles/fork-a-repo/) ## Stay in Sync + It is important to know how to keep your fork in sync with the upstream Workshops project. ### Configuring Your Remotes + Configure `ansible/workshops` as your upstream so you can stay in sync ```bash @@ -22,10 +25,11 @@ git remote add upstream https://github.com/ansible/workshops.git ``` ### Rebasing Your Branch + Three step process ```bash -git pull --rebase upstream master +git pull --rebase upstream devel ``` ```bash @@ -33,6 +37,7 @@ git status ``` ### Updating your Pull Request + ```bash git push --force ``` @@ -41,6 +46,8 @@ More info on docs.ansible.com: [Rebasing a Pull Request](http://docs.ansible.com ## Create a pull requests +**PULL REQUESTS MUST BE MADE INTO THE `DEVEL` BRANCH** + Make sure you are not behind (in sync) and then submit a PR to the Ansible Workshops. [Read the Pull Request Documentation on Github.com](https://help.github.com/articles/creating-a-pull-request/) @@ -53,6 +60,7 @@ Just because you submit a PR, doesn't mean that it will get accepted. Right now Being more descriptive is better, and has a higher change of getting merged upstream. Communication is key! Just b/c the PR doesn't get accepted right away doesn't mean it is not a good idea. Ansible Workshops have to balance many different types of users. Thank you for contributing! # Going Further + The following links will be helpful if you want to contribute code to the Ansible Workshops project, or any Ansible project: - [Ansible Committer Guidelines](http://docs.ansible.com/ansible/latest/committer_guidelines.html) - [Learning Git](https://git-scm.com/book/en/v2) From 4e6b631354bd2ff67cd06061b61978489c0d2cf1 Mon Sep 17 00:00:00 2001 From: ipvsean Date: Mon, 5 Aug 2019 10:20:34 -0400 Subject: [PATCH 49/50] Update contribute.md --- docs/contribute.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/contribute.md b/docs/contribute.md index b9c03f022..bdbd12683 100644 --- a/docs/contribute.md +++ b/docs/contribute.md @@ -26,12 +26,14 @@ git remote add upstream https://github.com/ansible/workshops.git ### Rebasing Your Branch -Three step process +Rebase the branch on your fork ```bash git pull --rebase upstream devel ``` +Check your status + ```bash git status ``` From 5b7b0e09b4d2502d72e615cdf3a94563d435f366 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Tue, 6 Aug 2019 10:33:19 +0200 Subject: [PATCH 50/50] Gating: Handle the case of branch merge vs. PR merge --- provisioner/tests/gating.groovy | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/provisioner/tests/gating.groovy b/provisioner/tests/gating.groovy index 68c42fd67..81a554639 100644 --- a/provisioner/tests/gating.groovy +++ b/provisioner/tests/gating.groovy @@ -25,7 +25,11 @@ Build Tag: ${env.BUILD_TAG}""" sh 'ansible --version | tee ansible_version.log' archiveArtifacts artifacts: 'ansible_version.log' script { - ANSIBLE_WORKSHOPS_REFSPEC = "+refs/pull/${env.CHANGE_ID}/head:refs/remotes/origin/${env.BRANCH_NAME}" + if (env.CHANGE_ID) { + ANSIBLE_WORKSHOPS_REFSPEC = "+refs/pull/${env.CHANGE_ID}/head:refs/remotes/origin/${env.BRANCH_NAME}" + } else { + ANSIBLE_WORKSHOPS_REFSPEC = "+refs/heads/${env.BRANCH_NAME}:refs/remotes/origin/${env.BRANCH_NAME}" + } if (TOWER_VERSION == 'devel') { tower_installer_url = "${AWX_NIGHTLY_REPO_URL}/${TOWER_VERSION}/setup/ansible-tower-setup-latest.tar.gz"