0:00
hey everyone welcome back to the channel
0:02
your goto place for Linux DevOps and
0:05
Kubernetes tutorials in this video we
0:08
are going to show you how to install
0:10
Enible AWX on Kubernetes cluster the
0:13
opensource version of Enable Tower by
0:15
Redhead by the end of this video you
0:18
will have a fully functional AWX
0:20
instance up and running inside your
0:22
Kubernetes environment let's get started
0:25
before we jump into the installation
0:27
let's quickly understand what AWX is awx
0:31
is the upstream and open-source project
0:33
for Reddit Nible Tower it provides web-
0:37
based UI REST API and the task engine to
0:40
manage your NCL playbooks and
0:42
infrastructure automation it helps the
0:45
team to manage inventory credentials and
0:47
jobs all from the one centralized
0:49
dashboard and best of all it's free and
0:53
open source to follow along make sure
0:56
you have following items ready a running
0:59
Kubernetes cluster could be a mini cube
1:01
production grade cluster like cube ADM
1:04
AKS EKS and GKE you must have cubectl
1:08
configured and working helm v3 installed
1:12
and persistent volume support for the
1:15
interest of time I have already prepared
1:17
a set of EML files and the commands that
1:19
I will use during this video i will post
1:22
these files and the commands in the
1:24
description for your reference let's
1:27
begin the installation process first
1:28
step is to add AWX operator first we
1:32
need to add the helm of AWS operator and
1:35
then we will use helm install to install
1:37
this AWS operator in the Google search
1:42
encouer click on this GitHub link it
1:48
page and we will be using this Helm
1:51
based installation so click on the
1:53
second link it will take us to this
1:56
page you can copy this
2:03
here next install this AWX operator
2:06
using the helm install command
2:13
in this command we are creating a
2:16
nameace AWX under this name space we are
2:20
installing nible AWX operator hit enter
2:24
now verify the AWX operator status can
2:31
list AWX can see that native AWX
2:35
operator is installed under this name
2:37
space AWX similarly you can verify the
2:44
ports in AWS name space for that run the
2:48
command cubectl space get space port
2:50
space- n followed by the name space in
2:53
our case name space is AWX hit
2:57
enter you can see AWX operator is up and
3:01
running as of now it is using two
3:04
replicas in next step we need to create
3:06
a storage class persistent to volume and
3:09
then we will deploy AWS and why we need
3:12
a storage class and a persistent volume
3:15
as AWX will use postgrade as a stateful
3:18
set and stateful set needs persistent
3:21
volume so let's create a storage class
3:28
i have already prepared a YML file for
3:32
class so the storage class name is local
3:35
storage and it would be created under
3:38
the name space AWX provisioner is no
3:41
provisioner in order to create the
3:42
storage class let's apply this
3:49
cube apply F and then the EML file
3:58
you should see a storage class
4:02
created under the name space
4:06
AWX the output confirm that storage
4:08
class has been created successfully next
4:14
volume for that persistent volume I have
4:17
created this AWX PV mamel file in this
4:22
file I am using a persistent volume name
4:24
as posgress PV it would be created under
4:28
the name space AWX the capacity is 10 GB
4:33
access mode is readr once and persistent
4:36
volume claim pulsy is written it will
4:38
use the storage class name as local
4:43
storage and we will be using a host path
4:46
and this path is on the worker node we
4:49
need to make sure that this mnt/ storage
4:53
folder exist on the worker nodes if it
4:56
is not there you should create it so
4:59
this is my worker node if I do ls-
5:09
storage I can see in my case on the
5:12
worker node this folder is there all
5:15
right moving back to the control plane
5:19
now apply this file in order to create
5:22
this persistent volume and the command
5:26
cubectl apply - f awx - pv.mml
5:32
file now verify whether the persistent
5:35
volume is created or not run the command
5:38
cubectl get pv - n and the name space
5:45
awx great i can see this persistent
5:48
volume of size 10 GB with access mode
5:53
arrow is available now that the operator
5:56
storage and persistent volume are
5:58
installed let's create the AWS custom
6:00
resource that defines your AWS
6:02
deployment create a ML file with the
6:09
mamel in this ML file as you can see the
6:12
kind is AWX name is anible - awx it
6:17
would be installed under the name space
6:19
AWX service type is node port and the
6:22
postgrade storage class is local hyphen
6:27
storage now deploy the AWS instance
6:30
using this file run the command
6:34
cubectl apply - f inible awx.tml hit
6:41
enter output confirms that it has been
6:46
successfully wait for a couple of
6:48
minutes and monitor the status of ports
6:50
operator and the service in AWX name
6:52
space for that you can run the command
6:56
cubectl get ports - n
7:12
Great the output confirms that it has
7:14
completed a job with the name encable
7:19
migration it has started a postgra port
7:22
and the status is running it has also
7:25
started AWS task with four replica count
7:29
and the status is running similarly with
7:31
AWX web with the replica count three and
7:36
status is up and running now let's
7:38
verify service status as
7:43
well all right this output confirms that
7:47
it has started all the ports it has
7:50
exposed the deployment like nible AWX
7:54
postgrade using the cluster IP it has
7:57
exposed this AWX-N service with the type
8:01
node port this is the node port we will
8:03
be using this node port in order to
8:06
access this anible AWX GUI similarly the
8:10
stateful set for this enable AWX post
8:13
gray is up and running all right if
8:16
everything looks good you can now access
8:18
the AWS web interface via the IP address
8:20
of control plane or the worker node
8:24
let me get the IP address of my control
8:26
plane using the command IP space add
8:31
so this is the IP address of my control
8:34
plane and this is the node port for my
8:43
browser type the IP here
8:56
number so when we install AWX it
9:00
automatically create a user admin and
9:02
its password in order to get the admin
9:06
users password we need to run a command
9:10
so go back to the control plane CLI part
9:21
command so this is a secret where the
9:23
admin user password is stored now in
9:33
password copy this password head back to
9:37
the web browser in the username field
9:39
type admin and paste the password that
9:48
login once you logged in you will see
9:50
the MCLE AWS dashboard where you can add
9:53
inventories create credentials and
9:57
jobs one important thing do not forget
10:00
to configure the persistent backups and
10:02
external database storage for the
10:04
production deployments you can also
10:06
integrate with the Git repos for secrets
10:09
and more advanced features in AWS that's
10:12
all from this video tutorial i hope you
10:14
are able to deploy ensible AWX on your
10:17
Kubernetes cluster smoothly with this
10:20
powerful tool you can automate and
10:22
manage your infrastructure like a pro
10:24
using a beautiful web UI if you found
10:27
this video helpful give it a like
10:29
subscribe for more DevOps and Linux
10:31
tutorials drop a comment if you want a
10:33
video on configuring AWS projects
10:35
inventory and job templates see you in