Centos7基於Docker-Compose安裝部署AWX

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

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)安裝依賴

$ 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

5、訪問AWX web 服務

等服務正常啓動後,可以直接訪問http://awx-host (awx-host爲你部署服務的server地址),如圖
Centos7基於Docker-Compose安裝部署AWX

默認用戶名:admin
默認密碼: password

6、一些其它操作

你可以利用docker-compose對AWX服務進行管理
如:停止AWX:docker-compose stop
更新AWX:docker-compose pull & docker-compose up --force-recreate

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章