Skip to content

Commit 71a9dd8

Browse files
authored
Merge pull request #390 from ansible/devel
Devel
2 parents 2c85b21 + 52f2fbd commit 71a9dd8

File tree

25 files changed

+1251
-152
lines changed

25 files changed

+1251
-152
lines changed

exercises/ansible_f5/2.0-disable-pool-member/disable-pool-member.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
name: "{{item.split(':')[0]}}"
5151
pool: "{{pool_name}}"
5252
port: "{{item.split(':')[1]}}"
53+
host: "{{hostvars[item.split(':')[0]].ansible_host}}"
5354
loop: "{{bigip_facts.ltm_pools | json_query(query_string)}}"
5455
vars:
5556
query_string: "[?name=='{{pool_name}}'].members[*].name[]"
@@ -62,4 +63,5 @@
6263
name: "{{member_name.user_input.split(':')[0]}}"
6364
pool: "{{pool_name}}"
6465
port: "{{member_name.user_input.split(':')[1]}}"
66+
host: "{{hostvars[member_name.user_input.split(':')[0]].ansible_host}}
6567
when: '"all" not in member_name.user_input'

exercises/ansible_rhel/1.1-setup/README.ja.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# Exercise 1.1 - 要件を確認してみよう
22

3-
**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md).
4-
53
## ラボ環境について
64

75
このラボでは、事前設定されたラボ環境で作業します。 以下のホストにアクセスできます。
@@ -18,13 +16,13 @@
1816
SSHでログインできます。:
1917

2018
> **Warning**
21-
>
19+
>
2220
> **11.22.33.44** のような文字列を、個々に提供されているStudent情報に記載の **IP** などへ読み替えてください。 **X** は student**X** といった具合です.
2321
2422
2523

2624
> **Tip**
27-
>
25+
>
2826
> パスワードは **ansible** です。
2927
3028
rootになるには以下のように実行してください。:
@@ -46,7 +44,7 @@ Ansibleが適切にInstallされているかを確認しましょう。
4644
[...]
4745

4846
> **Note**
49-
>
47+
>
5048
> Ansibleは構成管理を単純にしてくれます。 Ansibleはデータベースや実行用のデーモンを必要とせず、ラップトップでも簡単に実行できます。 管理対象ホストでは、実行用の常駐エージェントなども不要です。
5149
5250
rootアカウントからログアウトします。
@@ -55,7 +53,7 @@ rootアカウントからログアウトします。
5553
logout
5654

5755
> **Note**
58-
>
56+
>
5957
> 以降のすべての演習では、明示的な指示がない限り、コントロールノードのstudent\<X\> ユーザーとして作業してください。
6058
6159
## Step 1.2 - Working the Labs
@@ -65,15 +63,15 @@ rootアカウントからログアウトします。
6563
- すべて手で入力するのではなく、必要に応じてブラウザからコピー&ペーストしてください。しかし、考えたり理解したりするのをやめたりしないでください。
6664

6765
- すべてのラボは **Vim** を使って準備しましたが、みんながそれを愛しているわけではないことを理解しています。 **Midnight Commander** などを利用することができます。(**mc**を 実行すると実行できます。ファンクションキーはEsc-\<n\>でアクセスするかマウスでクリックすることでアクセスできます。)。または **Nano****nano**を実行)なども利用できます。 簡単な[editor intro]も用意してあります。(../ 0.0-support-docs / editor_intro.md)
68-
66+
6967

7068

7169
## Step 1.3 - チャレンジLabs
7270

73-
このラボガイドの様々な章で「チャレンジラボ」セクションがあります。
71+
このラボガイドの様々な章で「チャレンジラボ」セクションがあります。
7472
これらのラボは、これまでに学んだことを使って解決するための様々なタスクを用意しています。
7573
それぞれのラボの解答案は、`Warning`サインより下に記述されています。
7674

7775
----
7876

79-
[Click here to return to the Ansible for Red Hat Enterprise Linux Workshop](../README.ja.md#section-1---ansible-engine-exercises)
77+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)

exercises/ansible_rhel/1.2-adhoc/README.ja.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,11 +275,11 @@ node1 | CHANGED => {
275275
node1 | CHANGED | rc=0 >>
276276
Managed by Ansible
277277
```
278-
`ansible node1 -m copy …`コマンドを再実行してみてください。以下の点に着目してみてください:
278+
`ansible node1 -m copy …?`コマンドを再実行してみてください。以下の点に着目してみてください:
279279
280280
- 出力結果は、異なる色だったはずです。(適切な端末の設定がされている場合)
281281
- `"changed": true,` から `"changed": false,`へ変更されたはずです。
282-
- 最初の行が、`SUCCESS` から `CHANGED`に変わったはずです。
282+
- 最初の行が、`CHANGED` から `SUCCESS`に変わったはずです。
283283
284284
> **Tip**
285285
>
@@ -311,4 +311,4 @@ Managed by Ansible
311311
312312
----
313313
314-
[Ansible ワークショップ表紙に戻る](../README.ja.md)
314+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)

exercises/ansible_rhel/1.3-playbook/README.ja.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Exercise 1.3 - 初めてのplaybookを書いてみよう
1+
# Exercise 1.3 - 初めての Playbook 作成
22

33
**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md).
44

@@ -201,7 +201,7 @@ Playbookの次のパートでは、確かにApache Webserverが`node1`上で有
201201

202202
出力された結果をみてみてください。
203203
いくつかのタスクは緑色で"OK"と記載され、1つだけ黄色で"changed"と表示されているはずです。
204-
- もう一度、AnsibleのAd-Hocコマンドw用いてApacheが有効になっておりかつ起動していることを確認します。例えば、`systemctl status httpd`などを実行しましょう。
204+
- もう一度、AnsibleのAd-Hocコマンドを用いてApacheが有効になっておりかつ起動していることを確認します。例えば、`systemctl status httpd`などを実行しましょう。
205205

206206
- Playbookをもう一度実行して、出力結果が変わる様に慣れてみましょう。
207207

@@ -325,4 +325,4 @@ Playbookを実行してみましょう:
325325

326326
----
327327

328-
[Ansible ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engine-exercises)
328+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)

exercises/ansible_rhel/1.4-variables/README.ja.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# 演習1.4 - 変数を使ってみよう
22

3-
**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md).
4-
53
前回までは Ansible Engine の基礎部分を学習してきました。この演習では Playbook をより柔軟かつパワフルに使用できる、より高度なスキルを学びます。
64

75
Ansible では task をよりシンプル、かつ再利用可能にできます。システムの設定にはユニークな設定が含まれる場合があり、
@@ -27,7 +25,7 @@ Playbook では、変数名を二重中括弧で囲むことで変数を表現
2725

2826

2927
> **ヒント**
30-
>
28+
>
3129
> ホスト変数には優先順位があります。上記 Host 変数は、 Group 変数より優先されます。詳しくは製品マニュアルをご確認ください。
3230
3331
## ステップ 1.4.1 - 変数ファイルの作成
@@ -61,7 +59,7 @@ stage: prod
6159

6260
- `web` group のすべてのサーバーに対して、変数 `stage` に値 `dev` が定義されます。そして dev (開発)をデフォルト値として定義します。
6361

64-
- `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。
62+
- `node2` に関しては、上記で定義された変数 stage = dev が、prod で上書きされます。本番環境として定義されます。
6563

6664
## ステップ 1.4.2 - index.html ファイルの作成
6765

@@ -90,7 +88,7 @@ stage: prod
9088
`deploy_index_html.yml` という名前の Playbook を `~/ansible-files/` ディレクトリ内に作成します。
9189

9290
> **ヒント**
93-
>
91+
>
9492
> コピーするファイル名の中に指定された変数 "stage" がホストごとに取る値に注意してください。
9593

9694
<!-- {% raw %} -->
@@ -118,7 +116,7 @@ stage: prod
118116
各ホストには、変数 stage の値に従って異なるファイルがコピーされているはずです。デフォルトが dev で、node2 のみ、prod となっているはず。それぞれのweb server に curl コマンド(もしくはブラウザ)で接続して確認してみましょう。
119117

120118
```bash
121-
[student<X>@ansible ansible-files]$ grep node /home/student<X>/lightbulb/lessons/lab_inventory/student<X>-instances.txt
119+
[student<X>@ansible ansible-files]$ grep node ~/lab_inventory/hosts
122120
node1 ansible_host=11.22.33.44
123121
node2 ansible_host=22.33.44.55
124122
node3 ansible_host=33.44.55.66
@@ -137,7 +135,7 @@ node3 ansible_host=33.44.55.66
137135
```
138136

139137
> **ヒント**
140-
>
138+
>
141139
> 鋭い人はちょっと思うかもしれません、”もっと柔軟にファイルの中身を変更出来たら・・・、と”。こちらについては次の章(template モジュール)で学びます!
142140

143141
## ステップ 1.4.5 - Ansible ファクト
@@ -166,10 +164,10 @@ Ansibleがデフォルトでどのような事実を収集しているのか、
166164
- 管理対象ホストのディストリビューション(Red Hat)を表示してください。ただし、結果は一行で出力してください。
167165

168166
> **ヒント**
169-
>
167+
>
170168
> grep を使ってファクトの中から必要な情報を探してみます。次に、 filter を使ってこのファクトのみの情報を抽出してみましょう。一行での表示の方法は ansible コマンドの -h (help) を使って調べてみましょう!
171169

172-
170+
173171
> **答えは下記の通り\!**
174172

175173
```bash
@@ -194,13 +192,13 @@ Ansibleがデフォルトでどのような事実を収集しているのか、
194192
<!-- {% endraw %} -->
195193

196194
> **ヒント**
197-
>
195+
>
198196
> "debug" モジュールは変数や式を確認するのに有用です。
199197

200198
取得されたファクトがどのような形で表示されるか Playbook を実行してみてください。
201199

202200
```bash
203-
[student<X>@ansible ansible-files]$ ansible-playbook facts.yml
201+
[student<X>@ansible ansible-files]$ ansible-playbook facts.yml
204202
205203
PLAY [Output facts within a playbook] ******************************************
206204
@@ -211,13 +209,13 @@ ok: [node1]
211209
ok: [ansible]
212210
213211
TASK [Prints Ansible facts] ****************************************************
214-
ok: [node1] =>
212+
ok: [node1] =>
215213
msg: The default IPv4 address of node1 is 172.16.190.143
216-
ok: [node2] =>
214+
ok: [node2] =>
217215
msg: The default IPv4 address of node2 is 172.16.30.170
218-
ok: [node3] =>
216+
ok: [node3] =>
219217
msg: The default IPv4 address of node3 is 172.16.140.196
220-
ok: [ansible] =>
218+
ok: [ansible] =>
221219
msg: The default IPv4 address of ansible is 172.16.2.10
222220
223221
PLAY RECAP *********************************************************************
@@ -229,4 +227,4 @@ node3 : ok=2 changed=0 unreachable=0 failed=0
229227

230228
----
231229

232-
[Ansible ワークショップ表紙に戻る](../README.ja.md)
230+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)

exercises/ansible_rhel/1.5-handlers/README.ja.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# 演習 1.5 - 条件分岐, ハンドラー、ループ実行
2-
3-
**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md).
1+
# 演習 1.5 - 条件分岐, ハンドラー、ループを使う
42

53
## ステップ 1.5.1 - 条件分岐
64

@@ -26,8 +24,8 @@ Ansible は特定の条件が満たされたときにタスクを実行したり
2624

2725
では早速やってみましょう。まず、デフォルトで指定されたインベントリファイル編集し、`ftpserver` グループに `node2` を入れます。
2826
デフォルトのインベントリファイルは、
29-
`/home/student<X>/lightbulb/lessons/lab_inventory/student<X>-instances.txt` でしたね。♪
30-
27+
`~/lab_inventory/hosts` でしたね。♪
28+
3129
編集後は以下の様になります。node2 のIPアドレスはご自身ものを入力してください!
3230

3331
```ini
@@ -64,7 +62,7 @@ ansible ansible_host=44.55.66.77
6462
```
6563
6664
> **ヒント**
67-
>
65+
>
6866
> 作成完了したら playbook を実行してみてください。やり方は・・・、もう分かってますね (^^♪
6967
7068
実行した結果を確認してみてください。 `ftpserver` グループに記載された node2 以外のホストはタスクがスキップされ、node2 のみタスクの実行が行われていることが確認できます。
@@ -93,13 +91,13 @@ changed: [node2]
9391
まずはコピー元として利用する httpd.conf を node1 から取得します。
9492

9593
> **ヒント**
96-
>
94+
>
9795
>このファイルは既に node1 node2 node3 に配置されています。
9896

9997

10098
```bash
10199
[student<X>@ansible ansible-files]$ scp <node1>:/etc/httpd/conf/httpd.conf ~/ansible-files/.
102-
student<X>@<node1>'s password:
100+
student<X>@<node1>'s password:
103101
httpd.conf
104102
```
105103

@@ -140,9 +138,9 @@ Listen 8080
140138
```
141139

142140
- Playbookをもう一度実行してください。興味深い結果が得られます。
143-
141+
144142
- httpd.conf が上書きコピーされた
145-
143+
146144
- ハンドラーが呼び出され、 Apache サービスをリスタートした
147145

148146
Apacheはポート8080でリッスンしているはずです。試してみてください。
@@ -158,17 +156,17 @@ curl: (7) Failed connect to <node1>:80; Connection refused
158156
httpd.conf ファイルを再度 "80" に変更し、どうなるか試してみてください。
159157

160158
> **注意**
161-
>
159+
>
162160
> 演習1.7で、ポート8080を使います。この時点で 80ポートをリッスンするよう設定を戻しておいてください。
163161

164162

165163
> **ヒント**
166-
>
164+
>
167165
> よく聞かれる質問として、notify セクションが実行されたらすぐにハンドラーが呼び出されるのか?ということがありますが、これは違います。今回の場合、notify 直下にハンドラーが定義されているのですぐの実行となりますが、notiry とハンドラーが離れていた場合は、あくまで上から順に実行され、ハンドラーの順番になったところで実行されます。 notify でハンドラー実行のフラグを立てておく感じです。
168166

169167
## ステップ 1.5.3 - 単純な繰り返し(ループ実行)
170168

171-
ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html)
169+
ループを使用すると、同じタスクを繰り返し実行することができます。たとえば、複数のユーザーを作成したいとしましょう。Ansible ループを使用すると、単一のタスクでそれを実行できます。ループは、単なるリスト以外にも反復することができます。たとえば、対応するグループを持つユーザーのリストがある場合、ループはそれらに対しても反復することができます。 詳しくはマニュアルをご確認ください [Ansible Loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html)
172170

173171
ループの機能を確認してみましょう。 node1 に3人の新しいユーザーを作成します。 `~/ansible-files` ディレクトリの中に、 `loop_users.yml` という名前の playbook を作成します。使用するのは `user` モジュールで、playbook の中身は以下の通りです。
174172

@@ -240,7 +238,7 @@ httpd.conf ファイルを再度 "80" に変更し、どうなるか試してみ
240238

241239
- 再度タスクが一覧表示されます。ただし、3つの変更が表示されます。その内容を含む各ループが表示されます。
242240

243-
node1 内に `prod_user` がグループ `ftp` で作成されていることを確認します。
241+
node1 内に `dev_user` がグループ `ftp` で作成されていることを確認します。
244242

245243
```bash
246244
[student<X>@ansible ansible-files]$ ansible node1 -m command -a "id dev_user"
@@ -250,4 +248,5 @@ uid=1002(dev_user) gid=1002(dev_user) Gruppen=1002(dev_user),50(ftp)
250248

251249
----
252250

253-
[Ansible ワークショップ表紙に戻る](../README.ja.md)
251+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)
252+

exercises/ansible_rhel/1.5-handlers/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,13 @@ To show the loops feature we will generate three new users on `node1`. For that,
171171

172172
Understand the playbook and the output:
173173

174+
<!-- {% raw %} -->
174175
- The names are not provided to the user module directly. Instead, there is only a variable called `{{ item }}` for the parameter `name`.
175176

176177
- The `loop` keyword lists the actual user names. Those replace the `{{ item }}` during the actual execution of the playbook.
177178

178179
- During execution the task is only listed once, but there are three changes listed underneath it.
180+
<!-- {% endraw %} -->
179181

180182
## Step 5.4 - Loops over hashes
181183

exercises/ansible_rhel/1.6-templates/README.ja.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# 演習 1.6 - テンプレート
2-
3-
**Read this in other languages**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png) [日本語](README.ja.md).
1+
# 演習 1.6 - テンプレートを使う
42

53
Ansibleは、管理対象ホストにファイルをコピーする際、固定の内容ではなく変数に値を入力しながらコピーを行う様な事も可能です。例えば対象ホストユニークなホスト名などを含んだファイルのコピーを行うことが可能です。これを実現するのが Jinja2 テンプレートです。 Jinja2 は、Python で最も使用されているテンプレートエンジンの1つです。 (<http://jinja.pocoo.org/>)
64

@@ -57,15 +55,15 @@ Ansibleが変数をシステムから収取したファクト情報で変数を
5755
- 「Ansible ファクト」の章で学んだコマンドを使用して、カーネルバージョンを含むファクトを見つけます。
5856

5957
> **ヒント**
60-
>
58+
>
6159
> モジュールは `setup` ですね? `grep` 使って探してみましょう。
6260

6361
- 見つかったらその変数を表示するよう、テンプレートファイルに追記しましょう
6462

6563
- 再度 playbook を実行します
6664

6765
- 再度 node1 にログインし、表示をチェックしてみてください
68-
66+
6967

7068
> **答えは以下の通り**
7169

@@ -94,4 +92,5 @@ running kernel {{ ansible_kernel }}.
9492

9593
----
9694

97-
[Ansible ワークショップ表紙に戻る](../README.ja.md)
95+
[Ansible Engine ワークショップ表紙に戻る](../README.ja.md#section-1---ansible-engineの演習)
96+

0 commit comments

Comments
 (0)