一 查看系统内核是否为Ubuntu 1
root@kylinroot-computer:/home/kylinroot/myDownloads/awx-14.1.0/installer# cat /proc/version
Linux version 4.11.0-14-generic (buildd@builder211) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #20~16.04.1kord0k1-Ubuntu SMP Wed Oct 18 00:56:13 UTC 2017
注:如果可以,直接切换root用户操作如下命令2
sudo -i
二 安装ansible
1、修改Ubuntu 软件管理命令apt的镜像源为国内源
修改source.list
文件
sudo vi /etc/apt/source.list
文件内容改为如下:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
# deb-src [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
升级apt管理的软件
sudo apt update
sudo apt upgrade
2、设置系统
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
- 关闭selinux
修改config
文件
vi /etc/selinux/config
将文件中的SELINUX值修改为如下
SELINUX=disabled
3、安装python
- 先检查系统是否存在
python3
环境
ll /usr/bin/python*
root@kylinroot-computer:~# ll /usr/bin/python*
lrwxrwxrwx 1 root root 9 6月 18 21:28 /usr/bin/python -> python3.6*
lrwxrwxrwx 1 root root 9 4月 16 2018 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 3637096 3月 9 2023 /usr/bin/python2.7*
lrwxrwxrwx 1 root root 9 10月 25 2018 /usr/bin/python3 -> python3.6*
-rwxr-xr-x 2 root root 4526456 3月 11 2023 /usr/bin/python3.6*
lrwxrwxrwx 1 root root 33 3月 11 2023 /usr/bin/python3.6-config -> x86_64-linux-gnu-python3.6-config*
-rwxr-xr-x 2 root root 4526456 3月 11 2023 /usr/bin/python3.6m*
lrwxrwxrwx 1 root root 34 3月 11 2023 /usr/bin/python3.6m-config -> x86_64-linux-gnu-python3.6m-config*
lrwxrwxrwx 1 root root 16 10月 25 2018 /usr/bin/python3-config -> python3.6-config*
lrwxrwxrwx 1 root root 10 10月 25 2018 /usr/bin/python3m -> python3.6m*
lrwxrwxrwx 1 root root 17 10月 25 2018 /usr/bin/python3m-config -> python3.6m-config*
- 如果没装
python3
环境
sudo apt install python
- 如果存在python3环境,修改软连接为
python3
检查python版本是否为python3
root@kylinroot-computer:/usr/bin# python --version
Python 2.6.9
如果不是python3
版本,修改python命令所真正调用的命令python3的命令(其实这个python相当于就是个快捷方式,我们现在把这个快捷方式的调用目标改为python3)
sudo ln -fns [真正的命令] [python命令]
sudo ln -fns /user/bin/python3.6 /user/bin/python
这个python3.6就是我环境里的python3版本的python
上面执行成功后,直接打印版本号就会打印出python3的版本号:
root@kylinroot-computer:/usr/bin# python --version
Python 3.6.9
4、 Ubuntu安装docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
查看是否安装成功,如果出现以下图片证明成功
root@kylinroot-computer:/usr/bin# sudo docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:52:13 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:13 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
5、 docker设置源(最好如此,不然容易下载镜像失败)
创建daemon.json文件
touch /etc/docker/daemon.json
daemon.json文件内容如下:
{
"registry-mirrors" : [
"http://mirror.azure.cn/",
"http://mirrors.ustc.edu.cn",
"https://i1el1i0w.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://registry.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
重启docker
systemctl restart docker
查看docker是否设置成功,查看最下面Registry Mirrors是否为自己所设置的Registry Mirrors
root@kylinroot-computer:/home/kylinroot/myDownloads/awx-14.1.0/installer# docker info
Client: Docker Engine - Community
Version: 24.0.2
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.10.5
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.18.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Registry Mirrors:
http://mirror.azure.cn/
http://mirrors.ustc.edu.cn/
https://i1el1i0w.mirror.aliyuncs.com/
https://hub-mirror.c.163.com/
https://registry.aliyuncs.com/
https://registry.docker-cn.com/
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
5、安装ansible
- 修改pip 镜像源为国内镜像源
sudo mkdir ~/.pip
sudo touch ~/.pip/pip.conf
sudo vi ~/.pip/pip.conf
pip.conf
文件内容如下:
[global]
timeout = 6000
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
- 升级pip3
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
- 安装ansible(版本太高太低都会导致awx项目运行失败。。血泪教训!!)4
pip install ansible==2.9.1
*4) 卸载ansible(如果发现自己ansible版本安装错了那么就需要执行该步骤)
pip uninstall ansible
pip uninstall ansible-core
三、安装awx(主要是下载python依赖的库和项目)
- 下载python依赖的库
- 下载python依赖docker的库
pip install docker
- 下载python依赖的docker-compose库
pip install docker-compose
- 下载requests模块(我的麒麟系统确实缺少该模块,如果通过
pip list
看到自己有该模块那就不用下)
pip install requests
- 下载awx项目(可以用vpn在自己电脑下载下来,然后通过XFTP文件传输到自己的虚拟机)
https://github.com/ansible/awx/archive/14.1.0.tar.gz (博客最上面有个资源下载,就是这个东西,我没设置必需 积分下载,应该可以免费下载。。。吧)
解压缩
tar -zxvf awx-14.1.0.tar.gz
注:对自己在linux系统创建的文件夹里要chmod 777 目标文件夹
修改权限,不然的话,XFTP要传输文件到自己创建的文件夹里会失败(报错误状态) - 修改awx配置文件
进入awx的installer文件夹
cd [自己的下载的awx项目路径]/awx-14.1.0/installer
查看自己的python路径
root@kylinroot-computer:/usr/local/bin# which is python
/usr/bin/python
修改installer文件夹下inventory文件
sudo vi inventory
按字母i进入编辑模式
修改inventory文件第一行,主要改ansible_python_interpreter值为自己的·python路径
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/python"
按Esc退出编辑,然后:wq!
保存退出
- 下载awx所需镜像
依次输入如下三条命令
docker pull redis:latest
docker pull postgres:10
docker pull ansible/awx:14.1.0
拉取镜像完毕后,查看
root@kylinroot-computer:/home/kylinroot/myDownloads/awx-14.1.0/installer# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres 10 29de4f28ccbf 2 years ago 200MB
redis latest 7614ae9453d1 2 years ago 113MB
ansible/awx 14.1.0 8a29b4e35f5f 3 years ago 1.3GB
7、跑awx项目
在【自己放置awx的路径】/awx-14.1.0/installer
路径下运行一下命令
root@kylinroot-computer:/home/kylinroot/myDownloads/awx-14.1.0/installer# ansible-playbook -i inventory install.yml
查看运行结果
root@kylinroot-computer:/home/kylinroot/myDownloads/awx-14.1.0/installer# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84750effcd61 ansible/awx:14.1.0 "/usr/bin/tini -- /u…" 3 hours ago Up 3 hours 8052/tcp awx_task
49abd2db0abe ansible/awx:14.1.0 "/usr/bin/tini -- /b…" 3 hours ago Up 3 hours 0.0.0.0:80->8052/tcp, :::80->8052/tcp awx_web
54e9d286758e redis "docker-entrypoint.s…" 3 hours ago Up 3 hours 6379/tcp awx_redis
65b42ced3824 postgres:10 "docker-entrypoint.s…" 3 hours ago Up 3 hours 5432/tcp awx_postgres
注意:输入命令后不要立刻访问页面,需要等项目启动一会访问页面时页面才能出现
解释:
a、访问路径url就是[本虚拟机的ip地址]直接访问,端口就是[ansible/awx:14.1.0那俩镜像记录]对应的端口列,我的如上图所示就是80
b、访问的账号密码就是【自己放置awx的路径】/awx-14.1.0/installer
里的inventory文件里有写(即账号为admin,密码为password):
# This will create or update a default admin (superuser) account in AWX, if not provided
admin_user=admin
admin_password=password
成功界面
四 、总结
我这个步骤应该算是Ubuntu安装ansible+awx的比较简单方便的了,也是我看了多篇博客结合自己所踩的坑的结果。本篇博客也是自己真正实践成功的一个步骤的记录,由于过程十分艰难曲折,特此记录。
记于2024年6月23日小屋内
相关链接:
centos安装ansible+awx
ubuntu安装ansible+awx(我觉得没必要这么麻烦,我的或许好些)5
阿里云docker源设置
本博文只为Ubuntu系统以及Ubuntu系统为内核的银河麒麟安装ansible与以ansible为基础的awx项目,至于其他系统如centos的安装教程在本文最下面的相关链接 centos安装ansible+awx。 ↩︎
用roo用户可以避免所有命令前加root的麻烦,也可以避免一些权限问题,包括但不限于各种文件无法修改,无法对docker的进行结束或者启动,一些命令运行失败等等,但是如果想严谨,那么可以忽视这句话。 ↩︎
如果不设置pip的源那么升级pip就会报错。。。 ↩︎
如果ansible版本太高应该是这个报错
ERROR! [DEPRECATED]: community.general.docker_service has been removed. Use community.docker.docker_compose instead. This feature was removed from community.general in version 2.0.0. Please update your playbooks.
↩︎既然有这个博客了,我为什么还要写,因为他最后一步
make docker-compose
编译的时候需要下载镜像,会下载的很慢很慢,而且无法通过/etc/docker/daemon.json
文件加速下载,最后直接导致下载超时,怎么改都不行,总不能是我网太拉胯了吧? ↩︎