Delete Containers/Kubernetes/Minikube/Ansible Minikube.md
This commit is contained in:
@ -1,140 +0,0 @@
|
|||||||
# AWX Operator on Minikube Cluster
|
|
||||||
Minikube Cluster based deployment of Ansible AWX. (Ansible Tower)
|
|
||||||
:::note Prerequisites
|
|
||||||
This document assumes you are running **Ubuntu Server 20.04** or later.
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Install Minikube Cluster
|
|
||||||
### Update the Ubuntu Server
|
|
||||||
```
|
|
||||||
sudo apt update
|
|
||||||
sudo apt upgrade -y
|
|
||||||
sudo apt autoremove -y
|
|
||||||
```
|
|
||||||
|
|
||||||
### Download and Install Minikube (Ubuntu Server)
|
|
||||||
Additional Documentation: https://minikube.sigs.k8s.io/docs/start/
|
|
||||||
```
|
|
||||||
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
|
|
||||||
sudo dpkg -i minikube_latest_amd64.deb
|
|
||||||
|
|
||||||
# Download Docker and Common Tools
|
|
||||||
sudo apt install docker.io nfs-common iptables nano htop -y
|
|
||||||
|
|
||||||
# Configure Docker User
|
|
||||||
sudo usermod -aG docker nicole
|
|
||||||
```
|
|
||||||
:::caution
|
|
||||||
Be sure to change the `nicole` username in the `sudo usermod -aG docker nicole` command to whatever your local username is.
|
|
||||||
:::
|
|
||||||
### Fully Logout then sign back in to the server
|
|
||||||
```
|
|
||||||
exit
|
|
||||||
```
|
|
||||||
### Validate that permissions allow you to run docker commands while non-root
|
|
||||||
```
|
|
||||||
docker ps
|
|
||||||
```
|
|
||||||
|
|
||||||
### Initialize Minikube Cluster
|
|
||||||
Additional Documentation: https://github.com/ansible/awx-operator
|
|
||||||
```
|
|
||||||
minikube start --driver=docker
|
|
||||||
minikube kubectl -- get nodes
|
|
||||||
minikube kubectl -- get pods -A
|
|
||||||
```
|
|
||||||
|
|
||||||
### Make sure Minikube Cluster Automatically Starts on Boot
|
|
||||||
```jsx title="/etc/systemd/system/minikube.service"
|
|
||||||
[Unit]
|
|
||||||
Description=Minikube service
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
RemainAfterExit=yes
|
|
||||||
User=nicole
|
|
||||||
ExecStart=/usr/bin/minikube start --driver=docker
|
|
||||||
ExecStop=/usr/bin/minikube stop
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
```
|
|
||||||
:::caution
|
|
||||||
Be sure to change the `nicole` username in the `User=nicole` line of the config to whatever your local username is.
|
|
||||||
:::
|
|
||||||
:::info
|
|
||||||
You can remove the `--addons=ingress` if you plan on running AWX behind an existing reverse proxy using a "**NodePort**" connection.
|
|
||||||
:::
|
|
||||||
### Restart Service Daemon and Enable/Start Minikube Automatic Startup
|
|
||||||
```
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable minikube
|
|
||||||
sudo systemctl start minikube
|
|
||||||
```
|
|
||||||
|
|
||||||
### Make command alias for `kubectl`
|
|
||||||
Be sure to add the following to the bottom of your existing profile file noted below.
|
|
||||||
```jsx title="~/.bashrc"
|
|
||||||
...
|
|
||||||
alias kubectl="minikube kubectl --"
|
|
||||||
```
|
|
||||||
:::tip
|
|
||||||
If this is a virtual machine, now would be the best time to take a checkpoint / snapshot of the VM before moving forward, in case you need to perform rollbacks of the server(s) if you accidentally misconfigure something.
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Make AWX Operator Kustomization File:
|
|
||||||
Find the latest tag version here: https://github.com/ansible/awx-operator/releases
|
|
||||||
```jsx title="kustomization.yml"
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- github.com/ansible/awx-operator/config/default?ref=2.4.0
|
|
||||||
- awx.yml
|
|
||||||
images:
|
|
||||||
- name: quay.io/ansible/awx-operator
|
|
||||||
newTag: 2.4.0
|
|
||||||
namespace: awx
|
|
||||||
```
|
|
||||||
```jsx title="awx.yml"
|
|
||||||
apiVersion: awx.ansible.com/v1beta1
|
|
||||||
kind: AWX
|
|
||||||
metadata:
|
|
||||||
name: awx
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: awx-service
|
|
||||||
namespace: awx
|
|
||||||
spec:
|
|
||||||
type: NodePort
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 80
|
|
||||||
nodePort: 30080 # Choose an available port in the range of 30000-32767
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: awx-web
|
|
||||||
```
|
|
||||||
### Apply Configuration File
|
|
||||||
Run from the same directory as the `awx-operator.yaml` file.
|
|
||||||
```
|
|
||||||
kubectl apply -k .
|
|
||||||
```
|
|
||||||
:::info
|
|
||||||
If you get any errors, especially ones relating to "CRD"s, wait 30 seconds, and try re-running the `kubectl apply -k .` command to fully apply the `awx.yml` configuration file to bootstrap the awx deployment.
|
|
||||||
:::
|
|
||||||
|
|
||||||
### View Logs / Track Deployment Progress
|
|
||||||
```
|
|
||||||
kubectl logs -n awx awx-operator-controller-manager -c awx-manager
|
|
||||||
```
|
|
||||||
### Get AWX WebUI Address
|
|
||||||
```
|
|
||||||
minikube service -n awx awx-service --url
|
|
||||||
```
|
|
||||||
### Get WebUI Password:
|
|
||||||
```
|
|
||||||
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo
|
|
||||||
```
|
|
Reference in New Issue
Block a user