ansible远程连接docker容器并实现操作

注意环境准备:

一台ansible节点:192.168.47.132,远程连接docker容器并实现操作

一台被测试节点:192.168.47.134,部署docker容器

提前准备ansible环境,ssh免密连接

1.被测节点创建docker镜像带ssh服务,并启动ssh容器

#1.创建dockerfile目录
mkdir -p /dockerfile/ssh

#2.编写Dockerfile文件
cat << EOF >> /dockerfile/ssh/Dockerfile
# 使用Ubuntu作为基础镜像  
FROM ubuntu:latest

# 更新软件包列表并安装OpenSSH服务器  
RUN apt-get update && apt-get install -y openssh-server

# 设置root密码(可选,但不建议这样做)  
RUN echo 'root:your_password' | chpasswd

# SSH登录时不询问密码  
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# 设置SSH服务在Docker容器启动时自动运行  
RUN mkdir /var/run/sshd
RUN echo "AuthorizedKeysFile      %h/.ssh/authorized_keys" >> /etc/ssh/sshd_config

# 暴露SSH端口  
EXPOSE 22

# 启动SSH服务  
CMD ["/usr/sbin/sshd", "-D"]
EOF

#3.构建ssh-image镜像
docker build -t ssh-image /dockerfile/ssh/

#4.启动ssh容器
docker run -itd -p 2222:22 -p 880:80 -v /root/.ssh:/root/.ssh --name ssh ssh-image
#容器ssh端口22映射宿主机2222 
#容器web端口80映射宿主机880  后续测试ansible在容器内安装nginx
#/root/.ssh:/root/.ssh  免密登录映射,ansible远程连接不需要配置密码参数


#5.查看容器ssh的状态,查看是否启动
docker ps







2.ansible节点配置测试远程连接docker容器

#1.ansible配置192.168.47.134节点容器ssh信息
cat << EOF >> /etc/ansible/hosts
node2_docker  ansible_host=192.168.47.134 ansible_port=2222 ansible_user=root
EOF

#2.编写测试远程docker的yml文件
mkdir /ansible
cat << EOF >> /ansible/test_ssh.yml
- name: "测试ansible连接docker"
  hosts: node2_docker
  become: yes
  tasks:
    - name: "安装nginx"
      apt:
        name:
          - nginx
          - systemd
          - systemctl
        state: present

    - name: Start Nginx service
      service:
        name: nginx          # 服务的名称,这取决于你的系统和安装  
        state: started       # 服务的状态,可以是 started, stopped, restarted, reloaded 等  
        enabled: yes         # 是否在系统启动时自动启动服务
EOF

#3.ansible测试
ansible-playbook /ansible/test_ssh.yml

#4.执行ansible-playbook命令结果如下,无红色报错则正常
PLAY [测试ansible连接docker] *********************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [node2_docker]

TASK [安装nginx] *******************************************************************************************************************************************************************************
changed: [node2_docker]

TASK [Start Nginx service] *******************************************************************************************************************************************************************
changed: [node2_docker]

PLAY RECAP ***********************************************************************************************************************************************************************************
node2_docker               : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0


#5.浏览器访问测试页面
http://192.168.47.134:880/

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值