• 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

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

  • 相关阅读:
    多行文本溢出显示省略号(…)
    CSS3 grayscale滤镜图片变黑白实例页面
    腾讯TGideas语义化标签(转)
    jQuery Ajax通用js封装
    动态加载 js
    Javascript的四种继承方式
    Android四大组件之Activity
    Android四大组件通信的Intent介绍和详解
    oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
    oracle学习笔记(十三) 查询练习(三) 子查询查询
  • 原文地址:https://www.cnblogs.com/joy-sir/p/12162911.html
Copyright © 2020-2023  润新知