geerlingguy.awx-container
AWX (Construit avec Ansible Container)
DÉPRÉCIÉ : Ce projet a été déprécié. Veuillez utiliser les conteneurs AWX officiels et le fichier docker-compose.yml pour exécuter AWX à la place.
Ce projet en est à ses débuts. Il y aura des bugs !
Ce projet est composé de trois principales parties :
- Projet Ansible Container : Ce projet est maintenu sur GitHub : geerlingguy/awx-container. Veuillez soumettre des problèmes, des demandes de support, etc. contre ce dépôt GitHub.
- Image Docker Hub : Si vous souhaitez simplement utiliser
geerlingguy/awx_web
etgeerlingguy/awx_task
dans votre projet, vous pouvez les récupérer depuis Docker Hub. - Rôle Ansible : Si vous avez besoin d'un rôle Ansible pour construire AWX, consultez
geerlingguy.awx
sur Ansible Galaxy. (C'est le rôle Ansible qui fait la majeure partie du travail pour gérer le conteneur AWX.)
Versions
Les versions actuellement maintenues incluent :
geerlingguy/awx_web
:1.x
,latest
: AWX 1.x1.0.5
geerlingguy/awx_task
:1.x
,latest
: AWX 1.x1.0.5
Démarrage rapide - Utilisation autonome avec Docker Compose
Si vous souhaitez simplement faire fonctionner rapidement un environnement AWX, vous pouvez utiliser le fichier docker-compose.yml
inclus avec ce projet pour construire un environnement local accessible sur http://localhost:80/
:
mkdir awx-test && cd awx-test
curl -O https://raw.githubusercontent.com/geerlingguy/awx-container/master/docker-compose.yml
docker-compose up -d
Le fichier Docker Compose utilise des images communautaires pour postgres
, rabbitmq
, et memcached
, ainsi que les images suivantes pour AWX :
Après que la migration initiale de la base de données soit terminée (cela peut prendre quelques minutes ; suivez les progrès avec docker logs -f [id-du-conteneur-awx_task]
), vous pourrez accéder à l'interface AWX à http://localhost/
. Le nom d'utilisateur par défaut est admin
/ password
.
Remarque : Changez l'image pour les conteneurs
awx_web
etawx_task
dansdocker-compose.yml
si vous souhaitez utiliser les images maintenues pargeerlingguy/
plutôt que celles deansible/
. Si vous souhaitez simplement tester AWX, restez avec les paramètres par défaut.
Gestion avec Ansible Container
Prérequis
Avant d'utiliser ce projet pour construire et maintenir les images AWX pour Docker, vous devez avoir installé les éléments suivants :
- Docker Community Edition (pour Mac, Windows ou Linux)
- Ansible Container
Construire les images AWX
En général, vous construiriez les images comme indiqué dans le fichier container.yml
en utilisant ansible-container --var-file config.yml build
, mais dans ce cas, comme il y a de nombreuses dépendances regroupées dans le dépôt AWX, nous allons construire les images Docker en utilisant un playbook d'aide :
$ cd prebuild/
$ ansible-galaxy install -r requirements.yml --force
$ ansible-playbook -i 'localhost,' -c local prebuild.yml
Après l'exécution de ce playbook, vous devriez voir deux nouvelles images Docker (que nous utiliserons dans la définition d'Ansible Container) :
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
awx_task devel 26311794058d 29 seconds ago 938MB
awx_web devel 3d38dccc9190 58 seconds ago 913MB
Un fichier Vagrant est inclus avec ce projet pour aider à créer un environnement propre avec toutes les dépendances nécessaires pour construire les images AWX (si vous ne souhaitez pas tout installer sur votre ordinateur personnel !). Pour l'utiliser :
- Exécutez
vagrant up
.- Attendez que la configuration de Vagrant soit terminée (elle exécutera automatiquement
prebuild.yml
).- Connectez-vous avec
vagrant ssh
et utilisezdocker
ouansible
selon vos besoins.
Construire le conducteur
Construisez le conducteur en utilisant ansible-container build
:
ansible-container --var-file config.yml build
Remarque : Si vous rencontrez des erreurs de permission lors de la génération d'un conteneur Docker, assurez-vous que vous exécutez les commandes en tant que root ou avec sudo, ou que votre utilisateur fait partie du groupe
docker
(par exemple,sudo usermod -G docker -a [utilisateur]
, puis déconnectez-vous et reconnectez-vous).
Exécuter les conteneurs
ansible-container --var-file config.yml run
Vous devriez pouvoir accéder à AWX en allant sur http://localhost/ dans votre navigateur.
(Utilisez stop
pour arrêter le conteneur, et destroy
pour réinitialiser les conteneurs et toutes les images.)
Pousser les conteneurs vers Docker Hub
Actuellement, le processus de mise à jour de cette image sur Docker Hub est manuel. À terme, cela sera automatisé via Travis CI en utilisant ansible-container push
(pour l'instant, cela attend la résolution de ce problème).
Connectez-vous à Docker Hub en ligne de commande :
docker login --username=geerlingguy
Marquez la dernière version (uniquement si c'est la version la plus récente/par défaut) :
docker tag awx_web:devel geerlingguy/awx_web:latest docker tag awx_web:devel geerlingguy/awx_web:1.x docker tag awx_task:devel geerlingguy/awx_task:latest docker tag awx_task:devel geerlingguy/awx_task:1.x
Poussez les balises vers Docker Hub :
docker push geerlingguy/awx_web:latest # (si ceci vient juste d'être tagué) docker push geerlingguy/awx_web:1.x [etc...]
License
MIT / BSD
Informations sur l'auteur
Cette construction de conteneurs a été créée en 2017 par Jeff Geerling, auteur de Ansible for DevOps.
ansible-galaxy install geerlingguy.awx-container