# Démarrage - Première connexion

# 🚀 1. Première connexion

Accède à AWX via ton service :

<div class="relative w-full mt-4 mb-1" id="bkmrk-kubectl-get-svc--n-a"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-kubectl-get-svc--n-a-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">kubectl <span class="ͼs">get</span> svc <span class="ͼu">-n</span> awx</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>👉 URL = `http://<node-ip>:30080` (dans ton cas)

Login :

- user : `admin`
- password :

<div class="relative w-full mt-4 mb-1" id="bkmrk-kubectl-get-secret--"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-kubectl-get-secret---1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">kubectl <span class="ͼs">get</span> secret <span class="ͼu">-n</span> awx awx-admin-password <span class="ͼu">-o</span> <span class="ͼt">jsonpath</span><span class="ͼn">=</span><span class="ͼr">"{.data.password}"</span> | base64 <span class="ͼu">-d</span></div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

# ⚙️ 2. Configuration minimale (à faire tout de suite)

Dans l’UI AWX :

### 👉 Settings → System

- Time zone → `Europe/Paris`
- (optionnel) définir un base URL si tu exposes proprement

---

# 🔑 3. Créer une Credential SSH

C’est la base de tout.

### 👉 Resources → Credentials → Add

Type : **Machine**

Remplis :

- Name : `ssh-homelab`
- Username : ton user (`root` ou autre)
- Private key : ta clé SSH

👉 Exemple :

<div class="relative w-full mt-4 mb-1" id="bkmrk-cat-%7E%2F.ssh%2Fid_rsa"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-cat-%7E%2F.ssh%2Fid_rsa-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">cat</span> ~/.ssh/id_rsa</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Colle la clé privée.

---

# 🖥️ 4. Créer un Inventory

### 👉 Resources → Inventories → Add

- Name : `homelab`

Puis :

### 👉 Hosts → Add

Exemple :

<div class="relative w-full mt-4 mb-1" id="bkmrk-name%3A-node1variables"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-name%3A-node1variables-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">name: node1  
variables:  
ansible_host: 10.151.151.10  
ansible_user: root</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>👉 Tu peux aussi ajouter un groupe :

- `k8s`
- `vm`
- `nas`

---

# 📦 5. Créer un Project (Git)

AWX bosse avec Git, pas avec des fichiers locaux.

### 👉 Resources → Projects → Add

- Name : `homelab-infra`
- Source Control Type : Git
- URL : ton repo (GitHub / Gitea / GitLab)

👉 Si privé :  
→ ajoute une credential Git (token ou clé SSH)

---

# ▶️ 6. Créer un Job Template

C’est là que tout s’exécute.

### 👉 Resources → Templates → Add → Job Template

Remplis :

- Name : `Ping test`
- Inventory : `homelab`
- Project : `homelab-infra`
- Playbook : `ping.yml`
- Credentials : `ssh-homelab`

---

# 🧪 7. Exemple de playbook

Dans ton repo Git :

<div class="relative w-full mt-4 mb-1" id="bkmrk-%23-ping.yml--hosts%3A-a"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%23-ping.yml--hosts%3A-a-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼl">\# ping.yml</span>  
- hosts: all  
gather_facts: false  
tasks:  
- name: Test ping  
ping:</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

# ▶️ 8. Lancer un job

Clique sur 🚀

👉 Si tout est bon :

- hosts OK
- SSH OK
- repo OK

➡️ tu vois les résultats en live

---

# 🔁 9. Bonus utiles (important en homelab)

### ✔️ Variables globales (Inventory → Variables)

<div class="relative w-full mt-4 mb-1" id="bkmrk-ansible_python_inter"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ansible_python_inter-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">ansible_python_interpreter: /usr/bin/python3</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

### ✔️ Tester la connectivité

Ajoute un playbook :

<div class="relative w-full mt-4 mb-1" id="bkmrk---hosts%3A-alltasks%3A--"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk---hosts%3A-alltasks%3A---1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">- hosts: all  
tasks:  
- command: hostname</div></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

### ✔️ Ajouter sudo

Dans Credential :

- Privilege escalation : ✔️
- Method : sudo

---

# 🔐 10. Bonnes pratiques dès le début

👉 Tu es déjà en GitOps avec ArgoCD, donc :

- ✔️ versionne : 
    - inventories (via SCM)
    - projets
    - playbooks
- ❌ évite : 
    - config manuelle non trackée

---

# 🧠 Ce que tu viens de construire

Avec ça tu as :

- AWX = orchestrateur
- Git = source de vérité
- SSH = accès machines
- Kubernetes = infra

👉 Tu peux maintenant :

- déployer des apps
- configurer tes nodes
- gérer ton cluster