Centos7基于Docker-Compose安裝部署AWX
AWX提供基于Ansible的Web使用者界面、REST API和任務引擎它是 Ansible Tower的上遊開源項目。
基礎準備:
為了減少安裝過程中的問題,可以進行如下暴力的操作
1、關閉防火牆
$systemctl stop firewalld && systemctl disable firewalld #關閉并開機不自啟動firewalld
2、關閉SELinux
1)臨時關閉:setenforce 0
2)永久關閉:修改/etc/selinux/config
SELINUX=disabled
一、系統配置要求
1、最少4G記憶體
2、最少2核CPU
3、最好20G存儲空間
二、基礎環境要求:
1、Ansible 2.4+
2、Docker
3、Docker Compose
4、docker的python子產品
5、docker-compose的python子產品
6、GUN Make
7、Git 1.8.4+
8、Node 10.x LTS
9、NPM 6.x LTS
三、安裝基礎環境依賴
1、安裝ansibleRHEL和CentOS直接通過yum進行安裝
$ sudo yum install ansible
- 1.
2、安裝docker
Centos7安裝Docker CE
1)首先解除安裝舊版本
$sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
2)安裝依賴
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3)安裝
$sudo yum install docker-ce
4)啟動Docker CE
$ sudo systemctl start docker
3、安裝Docker Compose
Compose 項目是 Docker 官方的開源項目,負責實作對 Docker 容器叢集的快速編排。
直接基于二進制包安裝,直接從官方下載下傳編譯好的二進制檔案即可。
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
直接安裝完成。
4、安裝docker的python子產品
利用pip進行安裝
$sudo pip install docker
注意:如果系統沒有pip,可以直接通過 yum install python-pip安裝pip,然後繼續安裝。
如果系統之前安裝過docker-py子產品,則需要先解除安裝
5、安裝docker-compose的python子產品
$sudo pip install docker-compose
6、安裝git
$sudo yum –y install git
7、安裝Node和NPM
1)下載下傳Node二進制安裝包https://nodejs.org/en/download/ node-v10.16.0-linux-x64.tar.xz (已經預設包含npm 6.9.0)
$cd /usr/local/src/
$sudo wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz
2)解壓并建立一個軟連接配接(友善查找)
$sudo tar -xvf node-v10.16.0-linux-x64.tar.xz -C /usr/local
$sudo ln -s node-v10.16.0-linux-x64 node-v10
3)設定nodejs環境變量
$ cd /etc/profile.d/
$ vim nodejs.sh
export NODE_HOME=/usr/local/node-v10
export PATH=$NODE_HOME/bin:$PATH
使配置生效
$ source /etc/profile
檢查安裝
$ node -v
四、安裝部署AWX
1、克隆一個AMX的本地副本
$ cd /usr/local/src
$ git clone https://github.com/ansible/awx.git
2、進入awx目錄下的installer
$ cd /usr/local/src/awx/installer
根據具體情況修改inventory檔案
1)比如:你想部署在一個遠端的主機上,你需要修改inventory檔案,注釋localhost,然後添加你的遠端主機位址
# localhost ansible_connection=local
awx-server
[all:vars]
...
2)又或者你不想awx的預設的資料庫,則需要修改inventory檔案中pg_hostname、pg_username、pg_password、pg_database、pg_port等資料庫的相關連接配接資訊。
3)如果你想把ansible的playbook檔案放在本地,則需要修改inventory檔案中project_data_dir
如:project_data_dir=/var/lib/awx/projects
4)如果你本地不能聯網等等需要設定代理,則可以修改inventory檔案中的http_proxy、https_proxy。
…
3、開始直接建構和部署
#進去工作目錄
cd installer
#開始執行Ansible playbook
ansible-playbook -i inventory -e docker_registry_password=password install.yml
4、執行結果
執行結束後,可以在伺服器上使用docker ps 指令檢視到五個運作的容器。當然,你在部署的時候沒有選擇預設的PostgresSQL,可能隻有四個容器,如下所示:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6c5edbdac687 ansible/awx_task:4.0.0 "/tini -- /bin/sh -c…" 21 hours ago Up 21 hours 8052/tcp awx_task
6d67a7d33837 ansible/awx_web:4.0.0 "/tini -- /bin/sh -c…" 21 hours ago Up 21 hours 0.0.0.0:80->8052/tcp awx_web
59d116913853 memcached:alpine "docker-entrypoint.s…" 26 hours ago Up 21 hours 11211/tcp awx_memcached
9ea0073fe965 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" 26 hours ago Up 21 hours 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq
b7ae70f9a653 postgres:9.6 "docker-entrypoint.s…" 26 hours ago Up 21 hours 5432/tcp