zoukankan      html  css  js  c++  java
  • playbooks框架部署远程主机

    进入到ansible和python环境

    进入python3.6虚拟环境

    #su - deploy

    #source .py3-a2.5-env/bin/activate

    加载ansible 2.5版本

    #source .py3-a2.5-env/ansible/hacking/env-setup -q

    验证ansible加载效果

    #ansible-playbook --version

    编写playbooks框架

    新建一个目录和多个目录

    #mkdir test_playbooks

    #cd test_playbooks/

    #mkdir inventory roles

    进入到 inventory,创建testenv文件,

    # cd inventory

    #vi testenv

    添加目标主机服务地址

    [testservers]
    test.example.com
    
    [testservers:vars]
    server_name=test.example.com
    user=root
    output=/root/test.txt

    退回到上一级目录

    #cd ../

    进入roles目录,创建子目录

    #cd roles

    #mkdir -p testbox/tasks

    进入子目录,创建main.yml的文件,作为playbooks的主配置文件

    #cd testbox/tasks/

    #vi main.yml

    添加测试任务,保存退出

    - name: Print server name and user to remote testbox
      shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}"

    返回到test_playbooks目录

    #cd ../../..

    创建一个playbooks任务入口文件,保存退出

    #vi deploy.yml

    - hosts: "testservers"     # 对应testenv文件下主标签,用定义调用标签下目标主机
      gather_facts: true       # 获取目标主机信息
      remote_user: root        # 告诉ansible在目标主机下,使用root账户权限,进行所有系统的文件操作
      roles:            # 进入roles下testbox任务目录,进行接下来的任务执行
        - testbox

    打印playbooks目录下的树状结构

    #tree .

    配置ansible主机和目录主机的密钥认证

    返回root用户

    #su - root

    编辑hosts

    #vi /etc/hosts

    添加dns记录   test.example.com

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.96.151 test.example.com
    

    返回deploy用户

    #exit

    给deploy用户创建一个密钥认证

    #ssh-keygen -t rsa

    一直回车

    这时候生成的公钥和私钥都在同一个目录下/home/deploy/.ssh/

    指定deploy用户的公钥

    #ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub root@test.example.com

    输入目标主机的密码,就可以建立连接了

    测试不使用密码连接主机

    #ssh root@test.example.com

    测试完毕,返回到deploy用户下

    #exit

    进入到test_playbooks目录下,执行ansible-playbook下的deploy.yml文件。此时playbooks执行完成

    #ansible-playbook -i inventory/testenv ./deploy.yml

    登录到目标主机

    #ssh root@test.example.com

    查看当前目录下test.txt 。成功把参数写进入了

    #cat test.txt

    已成功将乐谱演奏给听众!!

  • 相关阅读:
    Linux 中国镜像
    VMWare 安装 Debian 9
    Linux 安装Docker compose 快速方法
    Nginx on Docker 配置
    Docker 中配置Nginx
    Nginx IPV4 问题
    VMWare中CentOS 7 配置 XShell连接
    在CentOS 7 中安装Docker
    Docker for Windows 和虚拟机VMWare共存方案
    Nginx 配置多个站点
  • 原文地址:https://www.cnblogs.com/joy-sir/p/12162911.html
Copyright © 2011-2022 走看看