docker安装ansible awx
awx簡介
Ansible AWX是商業版Ansible Tower 的開源版本,AWX提供了一個基于web的用戶界面、REST API和構建在Ansible之上的任務引擎。
借助Ansible AWX,您可以通過可視化儀表板,基于角色的訪問控制,作業計劃,集成通知和圖形化inventory管理來集中控制IT基礎架構。
借助圖形化的AWX,能夠更方便的編排和部署 Ansible Playbook,并提供集中的日志記錄、審計和系統跟蹤,通過REST API和CLI輕松將Ansible AWX嵌入現有工具和流程中。
項目地址:https://github.com/ansible/awx
docker安裝awx
參考:https://github.com/ansible/awx/blob/devel/INSTALL.md
準備一臺服務器,在本地使用docker方式部署awx。
安裝docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun systemctl enable --now docker安裝docker-compose
version=1.26.2 curl -L https://get.daocloud.io/docker/compose/releases/download/${version}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose安裝docker-compose python模塊
yum install -y python3 pip3 install docker-compose -i https://mirrors.aliyun.com/pypi/simple/下載awx
wget https://github.com/ansible/awx/archive/16.0.0.tar.gz tar -zxvf 16.0.0.tar.gz部署awx
yum install -y ansiblecd awx-16.0.0/installer/ ansible-playbook -i inventory install.yml查看運行的docker
[root@jenkins ~]# cd /root/.awx/awxcompose[root@jenkins awxcompose]# docker-compose ps -aName Command State Ports ---------------------------------------------------------------------------- awx_postgres docker-entrypoint.sh postgres Up 5432/tcp awx_redis docker-entrypoint.sh /usr/ ... Up 6379/tcp awx_task /usr/bin/tini -- /usr/bin/ ... Up 8052/tcp awx_web /usr/bin/tini -- /bin/sh - ... Up 0.0.0.0:80->8052/tcp瀏覽器訪問awx:http://10.39.140.196,默認用戶名admin,密碼password。
AWX使用示例
基本配置流程:
創建Credentials
首先需要為主機創建憑證,選擇Machine類型,可創建用戶密碼方式或ssh-key方式。
1、創建基于主機root用戶及密碼類型憑證:
2、創建基于主機ssh-key類型憑證:
在本機對被管理主機執行ssh免密:
ssh-keygen ssh-copy-id 10.39.140.248 ssh-copy-id 10.39.140.249獲取ssh private key
# cat /root/.ssh/id_rsa復制private key到awx點擊保存即可:
查看創建的憑證,后續執行job時可直接調用該憑證:
創建inventory
創建inventory
在inventory中選擇主機,直接使用IP地址添加主機
或者以別名方式添加主機
查看添加的主機
也可以使用導入方式批量添加主機,選擇Sources,配置以下信息,注意需要提前添加Projects
playbooks/hosts示例
創建主機組
將主機加入組
勾選2個主機,點擊右側Run Command,選擇ping模塊,下一步指定ssh-pass或ssh-key,然后點擊launch執行命令,等待任務成功執行:
創建projects
projects定義了一組playbooks的來源,指定了templates執行任務時從哪里引用playbook,常用的有以下幾種選擇:
- Manual:awx所在節點的本地目錄,默認為/var/lib/awx/projects,您需要將playbooks放在此處
- Git:指定playbooks所在git倉庫,可以是本地gitlab、gogs或遠端github等 (推薦的方式)
- Remote Archive:從遠端URL下載歸檔playbooks文件,你可以將其存在本地minio對象存儲或其他文件服務器等。
示例git倉庫playbooks:https://github.com/ansible/ansible-examples
您可以參照以上鏈接的示例倉庫組織自己的playbooks項目:
[root@jenkins ansible-examples]# tree -L 2 . ├── jboss-standalone │ ├── demo-aws-launch.yml │ ├── deploy-application.yml │ ├── group_vars │ ├── hosts │ ├── LICENSE.md │ ├── README.md │ ├── roles │ └── site.yml ├── lamp_haproxy │ ├── aws │ ├── group_vars │ ├── hosts │ ├── LICENSE.md │ ├── provision.yml │ ├── README.md │ ├── roles │ ├── rolling_update.yml │ └── site.yml ├── lamp_simple │ ├── group_vars │ ├── hosts │ ├── LICENSE.md │ ├── README.md │ ├── roles │ └── site.yml ├── lamp_simple_rhel7 │ ├── group_vars │ ├── hosts │ ├── LICENSE.md │ ├── README.md │ ├── roles │ └── site.yml創建projects,可選的Source Control Credential Type:
基于docker部署的awx推薦使用git倉庫方式:
點擊Sync Project進行同步:
創建Templates
創建templates以執行playbook任務。
注意,必須提前在awx中定義好與git倉庫playbook匹配的inventory:
運行templates,執行jobs任務
projects使用本地目錄
AWX不推薦引用本地目錄的playbooks,建議使用git倉庫統一管理playbooks,使用docker部署awx時,如果創建projects想要使用Manual方式運行本地目錄的playbook,需要按照以下步驟重新部署awx.
創建本地目錄,并將容器中projects復制到本地:
mkdir /var/lib/awx/ docker cp awx_task:/var/lib/awx/projects/ /var/lib/awx/projects/修改docker-compose.yml ,在web和task容器中掛載相同的卷
# cd /root/.awx/awxcompose/ # vim docker-compose.yml web:volumes:- /var/lib/awx/projects/:/var/lib/awx/projects/task:volumes:- /var/lib/awx/projects/:/var/lib/awx/projects/修改inventory配置文件,取消project_data_dir注釋
# cd awx-16.0.0/installer/# cat inventory |grep project_data_dir project_data_dir=/var/lib/awx/projects重新部署awx
ansible-playbook -i inventory install.yml在主機/var/lib/awx/projects目錄下創建自己的playbooks項目
[root@jenkins ~]# cat /var/lib/awx/projects/helloworld/helloworld.yml --- - name: Hello World!hosts: alltasks:- name: Hello World!shell: echo "Hi! Tower is working!"創建項目選擇Manual類型,即可在Playbook Directory選擇本地的playbooks執行:
然后創建templates直接執行即可:
任務執行完成如下:
總結
以上是生活随笔為你收集整理的docker安装ansible awx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab画收敛曲线,3.26 面收敛
- 下一篇: 瀚高数据库并行导入导出