WEBVTT

1
00:00.000 --> 00:03.300
Okay friends, so let's walk through how to actually solve this particular

2
00:03.300 --> 00:03.800
problem.

3
00:03.800 --> 00:07.170
So what I will do here is I will just create a Playbook which is called this "

4
00:07.170 --> 00:08.120
Users and

5
00:08.120 --> 00:11.120
Groups" the name itself doesn't actually matter, not specify what it should be

6
00:11.120 --> 00:11.840
called and let's

7
00:11.840 --> 00:12.840
go in here.

8
00:12.840 --> 00:16.040
So, very first time we'll do we'll have our three hyphens at the top, it is a Y

9
00:16.040 --> 00:16.480
AML file

10
00:16.480 --> 00:21.250
after all and I'll give this Playbook a name or just say "Creating Users and

11
00:21.250 --> 00:22.160
Groups".

12
00:22.160 --> 00:24.240
Now who was I specified behind the target?

13
00:24.240 --> 00:27.960
Well, I said we should target all the hosts within our network so I'll just say

14
00:27.960 --> 00:28.640
the all

15
00:28.640 --> 00:29.640
group.

16
00:29.640 --> 00:32.840
So if I don't have to gather facts, I'm going to set gather facts to be false,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

16
00:29.640 --> 00:32.840
So if I don't have to gather facts, I'm going to set gather facts to be false,

17
00:32.840 --> 00:33.440
just in order

18
00:33.440 --> 00:34.680
to speed the Playbook up.

19
00:34.680 --> 00:38.080
And now what I want to do is I want to effectively define my variables.

20
00:38.080 --> 00:40.160
So here's my Vars right here okay.

21
00:40.160 --> 00:42.850
Now you should also have this particular text for your right here that I've

22
00:42.850 --> 00:43.680
provided within

23
00:43.680 --> 00:44.920
this particular skill.

24
00:44.920 --> 00:48.480
So if I just copy all this information right here and all I'll do is paste the

25
00:48.480 --> 00:49.160
10 and

26
00:49.160 --> 00:50.160
fix the indentation.

27
00:50.160 --> 00:53.760
Okay, so let's now define our tasks that we want to actually perform.

28
00:53.760 --> 00:57.410
And the first task is going to be given a name and we'll just simply say "

29
00:57.410 --> 00:58.080
Create the

30
00:58.080 --> 00:59.080
Groups".

31
00:59.080 --> 01:02.530
Because if you recall in the Skill whereby we created users and groups, we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

31
00:59.080 --> 01:02.530
Because if you recall in the Skill whereby we created users and groups, we

32
01:02.530 --> 01:03.040
learned that

33
01:03.040 --> 01:07.200
it is best practice to actually create the group first in order to avoid any

34
01:07.200 --> 01:07.680
type of

35
01:07.680 --> 01:08.680
problems.

36
01:08.680 --> 01:09.680
Now what are we actually going to use?

37
01:09.680 --> 01:11.960
We're going to be using the Ansible built-in group module.

38
01:11.960 --> 01:14.230
So again if you're in the examination and you want to maybe get some

39
01:14.230 --> 01:14.880
information, we

40
01:14.880 --> 01:18.310
can say Ansible dot and then just say Ansible built-in and maybe basically get

41
01:18.310 --> 01:19.320
all the documentation

42
01:19.320 --> 01:22.320
on how to actually use this particular module.

43
01:22.320 --> 01:26.100
Now again at the very bottom here, we actually get some examples which is quite

44
01:26.100 --> 01:26.640
handy.

45
01:26.640 --> 01:30.060
So all I will do here is I'll just copy this information here because it's
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

45
01:26.640 --> 01:30.060
So all I will do here is I'll just copy this information here because it's

46
01:30.060 --> 01:30.600
quite a good

47
01:30.600 --> 01:34.720
idea to just copy and paste to not worry about indentation quite so much.

48
01:34.720 --> 01:38.040
And if I just go back out and I go back into my playbook, all I will do is I'll

49
01:38.040 --> 01:38.680
just simply

50
01:38.680 --> 01:39.680
paste this in.

51
01:39.680 --> 01:42.240
And again I'll just have to fix the indentation, kill so let me just get rid of

52
01:42.240 --> 01:43.080
this line here

53
01:43.080 --> 01:46.000
and I'll just modify this to have the correct heading.

54
01:46.000 --> 01:48.320
Now here's the thing, we have two options where we can actually solve this

55
01:48.320 --> 01:48.800
particular

56
01:48.800 --> 01:49.800
problem.

57
01:49.800 --> 01:53.340
It's what we can do is we can just manually specify the group name that we want

58
01:53.340 --> 01:53.840
to create

59
01:53.840 --> 01:58.370
such as heroes and then effectively copy the same task and then populate the

60
01:58.370 --> 02:00.160
value of villains.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

60
01:58.370 --> 02:00.160
value of villains.

61
02:00.160 --> 02:03.580
Now because we only have two groups and it's not really much of a slog to do

62
02:03.580 --> 02:04.160
that, that

63
02:04.160 --> 02:05.400
is what I'm just going to do.

64
02:05.400 --> 02:08.540
So let me create the heroes group and again let's make use of the old copy

65
02:08.540 --> 02:09.200
paste to keep

66
02:09.200 --> 02:10.200
things nice and quick.

67
02:10.200 --> 02:13.000
Gives us more time to think in the exam rather than spending time typing.

68
02:13.000 --> 02:16.090
Now I'll just paste this all the one in and in fact let me just say hero grip

69
02:16.090 --> 02:16.640
account,

70
02:16.640 --> 02:18.480
just that's a little bit more descriptive.

71
02:18.480 --> 02:21.240
And this one here I'll just say create the villain and of course I'm going to

72
02:21.240 --> 02:21.640
have to

73
02:21.640 --> 02:24.160
change the value here to villains.

74
02:24.160 --> 02:27.540
So the next thing we want to do is we want to create our users and add them to

75
02:27.540 --> 02:28.280
a particular

76
02:28.280 --> 02:29.280
group.

77
02:29.280 --> 02:31.040
So we want to use the user module this time.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

77
02:29.280 --> 02:31.040
So we want to use the user module this time.

78
02:31.040 --> 02:34.420
So if we check the documentation for the user module that's going here, once

79
02:34.420 --> 02:34.920
again we

80
02:34.920 --> 02:38.290
can scroll through all of the different options and parameters, we can see some

81
02:38.290 --> 02:38.920
examples that

82
02:38.920 --> 02:41.000
we can use as a basic template.

83
02:41.000 --> 02:45.360
Now just one thing I want to highlight to you using the modules here are the

84
02:45.360 --> 02:46.040
examples

85
02:46.040 --> 02:50.190
and the modules page as a template is a very very good time saving ideas but

86
02:50.190 --> 02:50.880
you do have

87
02:50.880 --> 02:51.880
to be careful.

88
02:51.880 --> 02:53.200
Let me show you why.

89
02:53.200 --> 02:56.570
Say for example this one here, this one looks pretty innocuous, it looks like

90
02:56.570 --> 02:57.280
it does create

91
02:57.280 --> 03:01.190
a user and gives me a comment, a user ID and it assigns that user to a group
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

91
02:57.280 --> 03:01.190
a user and gives me a comment, a user ID and it assigns that user to a group

92
03:01.190 --> 03:02.640
called admin.

93
03:02.640 --> 03:06.210
Just be aware that you happen to be reading what the example is attempting to

94
03:06.210 --> 03:06.920
do and also

95
03:06.920 --> 03:10.720
perhaps if you're unsure also read the description of the parameters.

96
03:10.720 --> 03:13.860
The reason why I'm saying this is because in this example here, this is

97
03:13.860 --> 03:14.600
actually going

98
03:14.600 --> 03:17.320
to add the user to a primary group of admin.

99
03:17.320 --> 03:20.670
So this key here is adding to the primary group whereas if I scroll on down a

100
03:20.670 --> 03:21.080
little

101
03:21.080 --> 03:25.220
bit further, we can see here this particular option actually uses the parameter

102
03:25.220 --> 03:26.000
groups,

103
03:26.000 --> 03:27.000
not just group.

104
03:27.000 --> 03:30.500
See that plural and because of this, if you recall when we talked about users
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

104
03:27.000 --> 03:30.500
See that plural and because of this, if you recall when we talked about users

105
03:30.500 --> 03:31.200
and groups,

106
03:31.200 --> 03:34.960
this is how we can add users to a second group which in this case here is what

107
03:34.960 --> 03:35.640
we would rather

108
03:35.640 --> 03:39.600
do and again we can verify this in the actual output here by just looking at

109
03:39.600 --> 03:40.920
the parameters.

110
03:40.920 --> 03:44.840
Group sets the primary group and groups allows us to add secondary groups that

111
03:44.840 --> 03:45.440
the user is

112
03:45.440 --> 03:46.800
going to be added to.

113
03:46.800 --> 03:48.720
So it's this particular one that we want to use.

114
03:48.720 --> 03:50.200
So let's go and grab this here.

115
03:50.200 --> 03:54.230
Okay, so let's grab you, copy this, back into our playbook and all I'll do is

116
03:54.230 --> 03:55.000
paste this

117
03:55.000 --> 03:57.680
in right here and then fix the indentation.

118
03:57.680 --> 04:00.400
So we indent in four spaces, one, two, three, four.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

118
03:57.680 --> 04:00.400
So we indent in four spaces, one, two, three, four.

119
04:00.400 --> 04:03.370
Now what you could do I suppose is for every single user, you could just keep

120
04:03.370 --> 04:03.920
copying,

121
04:03.920 --> 04:07.560
pasting in this task and just pass in the hard code of values as you need.

122
04:07.560 --> 04:12.040
But of course, this is not really the most elegant solution nor is it the most

123
04:12.040 --> 04:12.440
efficient

124
04:12.440 --> 04:14.360
solution in terms of saving time.

125
04:14.360 --> 04:17.730
So what I want to do is I actually want to invoke a loop to loop through all of

126
04:17.730 --> 04:18.320
the different

127
04:18.320 --> 04:22.600
users I have and just populate the values here with variable values.

128
04:22.600 --> 04:26.160
So for now what I will do here is I'm going to remove this shell option because

129
04:26.160 --> 04:26.520
we're

130
04:26.520 --> 04:28.840
not specified to specify a particular shell.

131
04:28.840 --> 04:31.900
So let's just get rid of this with DD and I'll just give this a task of create
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

131
04:28.840 --> 04:31.900
So let's just get rid of this with DD and I'll just give this a task of create

132
04:31.900 --> 04:33.160
the users.

133
04:33.160 --> 04:36.680
Now like I say what I want to do is I want to loop through all of my data.

134
04:36.680 --> 04:37.680
Now how do I do that?

135
04:37.680 --> 04:42.020
Well, if you look at the top key here, the actual object is known as movie

136
04:42.020 --> 04:42.800
people.

137
04:42.800 --> 04:46.520
And if I iterate through the first iteration is going to give me this object

138
04:46.520 --> 04:47.200
right here,

139
04:47.200 --> 04:51.480
the name and the type and the second iteration will give me this element Spider

140
04:51.480 --> 04:52.360
man and heroes

141
04:52.360 --> 04:56.440
and then the third Superman heroes, then Joker villains, so on so forth.

142
04:56.440 --> 04:57.440
So check this out.

143
04:57.440 --> 05:01.380
What I will do here is at the very bottom at the same level of indentation as
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

143
04:57.440 --> 05:01.380
What I will do here is at the very bottom at the same level of indentation as

144
05:01.380 --> 05:01.960
my actual

145
05:01.960 --> 05:05.320
module itself, I will specify I'm going to be looping through something.

146
05:05.320 --> 05:06.520
Now what am I going to be looping through?

147
05:06.520 --> 05:09.970
Well, if I just use my double curly braces, I will specify that I want to be

148
05:09.970 --> 05:10.600
looping through

149
05:10.600 --> 05:12.280
my movie people object.

150
05:12.280 --> 05:16.060
Now recall when we happen to invoke a loop and answerable, the constituent

151
05:16.060 --> 05:16.720
parts can be

152
05:16.720 --> 05:18.640
referenced via the keyword item.

153
05:18.640 --> 05:20.320
It's a special keyword with an answerable.

154
05:20.320 --> 05:22.640
So let's get rid of this hard code of value here.

155
05:22.640 --> 05:26.720
And again, let's have my double curly braces and I'll specify my item.

156
05:26.720 --> 05:30.550
Now it's not actually correct quite just yet because the item itself in this
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

156
05:26.720 --> 05:30.550
Now it's not actually correct quite just yet because the item itself in this

157
05:30.550 --> 05:31.120
case here

158
05:31.120 --> 05:34.880
because in first iteration, we're going to get both the name and the type.

159
05:34.880 --> 05:37.420
You see that because pretty much we can see the little hyphen here that's going

160
05:37.420 --> 05:37.680
to give

161
05:37.680 --> 05:40.800
us the first object, second one here, third one here.

162
05:40.800 --> 05:44.810
So we want to be a little bit more precise and as we iterate through each item,

163
05:44.810 --> 05:45.240
in the

164
05:45.240 --> 05:49.570
case of getting used on name, we also want to grab the name key to just get

165
05:49.570 --> 05:50.360
this piece

166
05:50.360 --> 05:52.000
of the data that we're looking through.

167
05:52.000 --> 05:55.660
And then on second iteration, just grab this name to get this piece of

168
05:55.660 --> 05:56.560
information.

169
05:56.560 --> 05:57.560
So on so forth.

170
05:57.560 --> 06:02.960
So let's scroll on down and I'll say the name is going to be item dot name.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

170
05:57.560 --> 06:02.960
So let's scroll on down and I'll say the name is going to be item dot name.

171
06:02.960 --> 06:06.050
Now the groups that we're going to be belonging to, but also going to be loop

172
06:06.050 --> 06:06.760
ing through.

173
06:06.760 --> 06:08.800
So let's have my double curly braces.

174
06:08.800 --> 06:11.920
And I will say item and what do I want to grab this time?

175
06:11.920 --> 06:16.040
Well, if they happen to be a hero, I want to grab the type heroes and if they

176
06:16.040 --> 06:16.760
are a villain,

177
06:16.760 --> 06:18.640
we can grab the type to get the villain.

178
06:18.640 --> 06:21.600
So again, we're going to grab the type key this time.

179
06:21.600 --> 06:25.330
Now this is actually not all, but also going to have to provide a password for

180
06:25.330 --> 06:25.720
each of

181
06:25.720 --> 06:26.720
these accounts.

182
06:26.720 --> 06:29.920
Now if we go back in and consult the documentation, if we scroll on down, we

183
06:29.920 --> 06:30.920
can see we can actually
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

183
06:29.920 --> 06:30.920
can see we can actually

184
06:30.920 --> 06:31.920
create a password.

185
06:31.920 --> 06:35.390
In fact, if I just say forward slash and just type in password and hit enter,

186
06:35.390 --> 06:35.720
it's going

187
06:35.720 --> 06:39.050
to snap us to the relevant part, which is also a good time saving piece of

188
06:39.050 --> 06:39.920
information.

189
06:39.920 --> 06:42.040
So we can see the password parameter.

190
06:42.040 --> 06:45.920
It says here, if provided set the user's password to the provided encrypted

191
06:45.920 --> 06:46.240
hash if

192
06:46.240 --> 06:47.240
you're on Linux.

193
06:47.240 --> 06:48.240
Okay.

194
06:48.240 --> 06:49.240
So think about this.

195
06:49.240 --> 06:51.920
Remember when we dealt with this in the earlier scale within this course, what

196
06:51.920 --> 06:52.400
we can

197
06:52.400 --> 06:54.680
do is we can actually run this through a filter.

198
06:54.680 --> 06:58.080
So what I will do here is I'll use the password key right here.

199
06:58.080 --> 06:59.080
Now here's the thing.

200
06:59.080 --> 07:02.570
If the user happens to be a hero, I want to give them the password of hero pass
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

200
06:59.080 --> 07:02.570
If the user happens to be a hero, I want to give them the password of hero pass

201
07:02.570 --> 07:02.720
.

202
07:02.720 --> 07:03.720
Okay.

203
07:03.720 --> 07:07.250
So my single quotation marks, I will specify hero pass and then I will use my

204
07:07.250 --> 07:07.920
pipe to invoke

205
07:07.920 --> 07:12.220
a filter and then I will say I want to use the password hash filter and then

206
07:12.220 --> 07:12.800
within my

207
07:12.800 --> 07:15.930
parentheses, I'll specify the hash I want to use, which in this case here will

208
07:15.930 --> 07:16.440
be five,

209
07:16.440 --> 07:19.160
one, two and again, close my parentheses.

210
07:19.160 --> 07:20.680
So think about it like this.

211
07:20.680 --> 07:24.440
This here is going to look through all the users as it stands right now.

212
07:24.440 --> 07:28.580
Grab out their name, populate it into the name parameter, take it or type and

213
07:28.580 --> 07:29.080
assign it to

214
07:29.080 --> 07:30.480
the group's parameter.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

214
07:29.080 --> 07:30.480
the group's parameter.

215
07:30.480 --> 07:33.700
Then we're going to give everyone a password of hero pass and make sure that

216
07:33.700 --> 07:34.400
password is

217
07:34.400 --> 07:35.400
hashed.

218
07:35.400 --> 07:38.600
Now the problem is, is that we don't want to give absolutely everyone this

219
07:38.600 --> 07:39.200
particular

220
07:39.200 --> 07:40.200
password.

221
07:40.200 --> 07:44.080
We only want to give half of them that password and the other half a password

222
07:44.080 --> 07:45.240
of villain pass.

223
07:45.240 --> 07:47.520
So we have a condition right here.

224
07:47.520 --> 07:51.850
So it's a good idea maybe to actually invoke your conditional logic, ie

225
07:51.850 --> 07:52.880
utilizing a when

226
07:52.880 --> 07:53.880
statement.

227
07:53.880 --> 07:57.680
So what I can do here is below at the same level of indentation as my look, I

228
07:57.680 --> 07:57.960
will use

229
07:57.960 --> 07:58.960
my when keyword.

230
07:58.960 --> 08:01.040
Now what is a condition I want to specify?
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

230
07:58.960 --> 08:01.040
Now what is a condition I want to specify?

231
08:01.040 --> 08:05.330
Well, specify when the item dot type that I'm looping through, which is going

232
08:05.330 --> 08:06.000
to specify

233
08:06.000 --> 08:10.510
if I'm a villain or if I am a hero, when I evaluate, so I'll use my double

234
08:10.510 --> 08:11.480
equal sign,

235
08:11.480 --> 08:14.280
when it evaluates to the value of heroes.

236
08:14.280 --> 08:17.580
So pretty much this task is going to look through everything that we have and

237
08:17.580 --> 08:18.880
then evaluate

238
08:18.880 --> 08:22.780
if the item dot type that we're looping through comes to heroes, then we'll do

239
08:22.780 --> 08:23.320
all of this

240
08:23.320 --> 08:24.320
stuff right here.

241
08:24.320 --> 08:25.320
Okay.

242
08:25.320 --> 08:28.440
So we're only effectively going to create what is now the hero users.

243
08:28.440 --> 08:29.840
So that's only one part of the task.

244
08:29.840 --> 08:31.240
We also have our villains.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

244
08:29.840 --> 08:31.240
We also have our villains.

245
08:31.240 --> 08:35.750
So what we can do therefore is if I just copy all of this right here, just grab

246
08:35.750 --> 08:36.200
you and

247
08:36.200 --> 08:40.080
again, I just go to the margin and I just paste all of this in again, boom.

248
08:40.080 --> 08:44.030
As so we can just make a quick modification just to create the villain users in

249
08:44.030 --> 08:44.560
this case

250
08:44.560 --> 08:48.560
here and all we're going to do here is change the password to villain pass.

251
08:48.560 --> 08:51.800
And this is only going to run when we evaluate the type we're looping through

252
08:51.800 --> 08:52.480
evaluates to

253
08:52.480 --> 08:54.040
villains.

254
08:54.040 --> 08:55.600
So let's just save this right here.

255
08:55.600 --> 08:59.290
And for now, if I happen to log into my devices, let's go into device one, for

256
08:59.290 --> 09:00.080
example, we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

256
08:59.290 --> 09:00.080
example, we

257
09:00.080 --> 09:01.400
can see we're on device one.

258
09:01.400 --> 09:04.570
If I happen to go into the exit password file, notice we don't have any

259
09:04.570 --> 09:05.920
accounts for Batman,

260
09:05.920 --> 09:07.880
Superman, Spider-Man, that type of thing.

261
09:07.880 --> 09:12.200
And similarly, if I go into the exit group file also, slowing one down, notice

262
09:12.200 --> 09:12.720
we don't

263
09:12.720 --> 09:15.080
have any group for heroes or villains.

264
09:15.080 --> 09:16.720
That should change when we're on this play book.

265
09:16.720 --> 09:19.080
So let's exit back out, get back to our control node.

266
09:19.080 --> 09:22.750
If I just run the playbook of answerable play book users and grips and to enter

267
09:22.750 --> 09:23.520
, we now create

268
09:23.520 --> 09:26.200
the grips and the users and make all the assignments.

269
09:26.200 --> 09:31.130
And if we actually log into our device now, device number one, if I say less on
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

269
09:26.200 --> 09:31.130
And if we actually log into our device now, device number one, if I say less on

270
09:31.130 --> 09:31.720
the exit

271
09:31.720 --> 09:33.400
pass wd file right here.

272
09:33.400 --> 09:36.500
And if I scroll all the way down, we can see here at the bottom, we can see we

273
09:36.500 --> 09:37.320
have Batman,

274
09:37.320 --> 09:41.280
Spider-Man, Superman, Joker, Green Goblin and Lex Luthor and similar live, I

275
09:41.280 --> 09:41.840
press Q.

276
09:41.840 --> 09:46.110
And I also say less on the exit group file right here and to enter scroll all

277
09:46.110 --> 09:46.560
the way

278
09:46.560 --> 09:50.460
down, we can see here we have our heroes group and who's in the heroes, we have

279
09:50.460 --> 09:50.960
Batman,

280
09:50.960 --> 09:55.200
Spider-Man and Superman and the villains group, we have Joker, Green Goblin and

281
09:55.200 --> 09:56.440
Lex Luthor.

282
09:56.440 --> 09:59.300
Now the crucial point to note here is if I just happened to try to become one

283
09:59.300 --> 09:59.640
of the

284
09:59.640 --> 10:03.780
users and I say substitute user to Batman, Batman should have a password of
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

284
09:59.640 --> 10:03.780
users and I say substitute user to Batman, Batman should have a password of

285
10:03.780 --> 10:04.400
hero pass,

286
10:04.400 --> 10:06.280
so let's type in hero pass.

287
10:06.280 --> 10:10.040
And as we can see here, we're successfully logged in as Batman if I exit out.

288
10:10.040 --> 10:13.870
If I try to become, say for example, the Joker, Joker should have a password of

289
10:13.870 --> 10:14.840
villain pass.

290
10:14.840 --> 10:18.400
So if I hit enter, now we can see here I became the Joker account.

291
10:18.400 --> 10:21.640
And the same thing will be true over on device number 2.
