基于ansible在远程centos服务器docker环境安装docker-redis

本文档主要介绍如何使用ansible在远程centos服务器docker环境快速安装redis6.0.8,目标服务器为一台阿里云ECS,安装操作系统为阿里云提供的公共镜像Credis面试题entos7.9-64。且已经预装docker环境。

准备

硬件

  • 一台阿里云ECS:1c2g云计算40g
    • 预装docke云计算最简单解释r环境 参考 基于ansible在centos服务器安装docker
  • 一台可以连接阿里云的linux服务器,预装ansible和git,其中ansible版本为2.9.27

基础环境

服务器类型 OS 公网Iansible安装部署P 内网IP 备注
目标服务器 Centos7.9(阿里云自带的公共镜像) 123.23.1python怎么读2.21 172.22.3.13 阿里云ECS(root/Epay@1002)
主控端 Centos7.9 192.1ansible面试题68.99.2云计算最简单解释40 本地LInux服务器

安装

本地安装指ssh到主dockerhub控端,然后通过ansible将redis容器在目标服务器上启动并运行。

下载脚本

[root@myhost ~]# git clone https://gitee.com/pi4k8s/ansible-exmaples.git

安装pytredis面试题hon3

目标服务器安装的Cen云计算tos7.9操作系统默认安装的python版本比较低,其实并不支持ansiblepython基础教程的dockeredis数据结构r容器相关指令;这里我们需要先在目标服务器远程安装一个高版本的pytredis面试题hon,后续再通过指定python路径的方式去执行ansible脚本就可以成功操作docker容器了。

前面一个步python可以做什么工作骤中下载的脚本目前是把python3编译安装在/usr/pythonsoft/python3目录下,后续启动docker容器均需要指定ansible_python_interpreteredis缓存r为/usr/soft/python3。

另外要注意一下主控端的aansible模块介绍nsible版python本号,本实践使用的ansible版本为2.9.27,如果ansible版本过低可能会导致基于本实践的安装python3失败。

[root@server240 ansible-examples]# cd ..
[root@server240 output]# cd ansible-examples/aliyun-cento79/
[root@server240 aliyun-centos7.9]# ANSIBLE_HOST_KEY_CHECKING=false sh install-python.sh myhost
PLAY [myhost] ********************************************************************************************
TASK [Gathering Facts] ***********************************************************************************
ok: [myhost]
TASK [python3 : install required packages] ***************************************************************
ok: [myhost]
TASK [python3 : get python sources] **********************************************************************
ok: [myhost]
TASK [remove python3] ************************************************************************************
ok: [myhost]
TASK [remove python3-compile] ****************************************************************************
ok: [myhost]
TASK [cp python3] ****************************************************************************************
changed: [myhost]
TASK [compile python3] ***********************************************************************************
changed: [myhost]
TASK [install python3] ***********************************************************************************
changed: [myhost]
TASK [python3 : install pip docker-py] *******************************************************************
changed: [myhost]
PLAY RECAP ***********************************************************************************************
myhost                     : ok=9    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

验证

[root@server240 aliyun-centos7.9]# ansible -m shell -a '/usr/soft/python3/bin/python3 --version' -i hosts myhost
myhost | CHANGED | rc=0 >>
Python 3.6.13

安装rredis数据结构edis6.0.8

[root@server240 ansible-examples]# cd ..
[root@server240 output]# cd ansible-examples/aliyun-cento79/
[root@server240 aliyun-centos7.9]# ANSIBLE_HOST_KEY_CHECKING=false sh install-redis.sh myhost
PLAY [myhost] ********************************************************************************************
TASK [Gathering Facts] ***********************************************************************************
ok: [myhost]
TASK [redis : Allow Overcommit Memory] *******************************************************************
changed: [myhost]
TASK [redis : Disable THP support scripts added to rc.local] *********************************************
changed: [myhost]
TASK [redis : disable transparent_hugepage] **************************************************************
changed: [myhost]
TASK [deploy redis docker container] *********************************************************************
changed: [myhost]
TASK [redis : get ip] ************************************************************************************
changed: [myhost]
TASK [redis : debug] *************************************************************************************
ok: [myhost] => {
    "containerIp": {
        "changed": true, 
        "cmd": [
            "docker", 
            "inspect", 
            "--format", 
            "{{ .NetworkSettings.IPAddress }}", 
            "redis"
        ], 
        "delta": "0:00:00.039010", 
        "end": "2022-05-07 21:58:23.130803", 
        "failed": false, 
        "rc": 0, 
        "start": "2022-05-07 21:58:23.091793", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": "172.17.0.2", 
        "stdout_lines": [
            "172.17.0.2"
        ]
    }
}
RUNNING HANDLER [redis : wait for container to become active] ********************************************
ok: [myhost]
PLAY RECAP ***********************************************************************************************
myhost                     : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

验证

[root@server240 aliyun-centos7.9]# ansible -m shell -a 'docker exec redis redis-cli -v' -i hosts myhost
myhost | CHANGED | rc=0 >>
redis-cli 6.0.8