zoukankan      html  css  js  c++  java
  • ansible的安装和密钥下发

    ansible集合了众多优秀运维工具(Puppet、Cfengine、Chef、Func、Fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

    从功能上ansible可以实现以下目标:

    • 应用代码自动化部署
    • 系统管理配置文件自动化
    • 支持持续交付自动化
    • 支持云平台、大数据平台(如AWS,OpenStack)
    • 轻量级、无需客户端安装agent,更新时只需要在客户机进行一次更新即可
    • 批量任务执行可以写成脚本,不用分发到远程就可以执行
    • 使用python编写,维护更方便,Ruby语法过于复杂
    • 支持非root操作,支持sudo

    一、安装ansible

    系统环境

    cat /etc/redhat-release
    
    CentOS Linux release 7.4.1708 (Core)

    软件版本

    ansible-2.5.3-1.el7.noarch 

     ansible一般在epel源中提供,首先配置epel源(base yum仓库默认没有ansible源码)

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    清除yum缓存

    yum clean all
    yum makecache

    yum方式安装ansible

    yum install ansible

     查看版本

    ansible --version

    二、然后更改配置,/etc/ansible/ansible.cfg,将里面的host_key_checking = False前的#去掉,ssh在首次连接出现检查keys 的提示,通过设置,不会有这些提示

    # 要不修改ansible.cfg配置文件的ask_pass = True给取消注释

    三、.去设置hosts文件,在最后加入以下配置,10.139.11.118是要远程的服务器IPansible_ssh_user登录服务器的用户,ansible_ssh_pass登录服务器的密码

     

    [test]
    10.139.11.118 ansible_ssh_user=root ansible_ssh_pass='wddx@2018'
    10.139.11.119 ansible_ssh_user=root ansible_ssh_pass='1qaz!QAZ'

     

    四、测试ansible是否可用

    ansible test -m command -a 'uptime'

    五、生成公钥/私钥

    ssh-keygen        # 生成秘钥

     # 一路enter

    六、下发公钥、私钥

    一个一个下发

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.127.7.77   # 将公钥写入被管理机

    机器多的情况下,使用ssh-copy-id方法有些费时,使用ansible-playbook推送ymal

    新建push.ssh.ymal文件,将下面内容写入

    # Using alternate directory locations:
    
      - hosts: test
    
        user: root
    
        tasks:
    
         - name: ssh-copy
    
           authorized_key: user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
    
           tags:
    
             - sshkey

    执行推送命令

    ansible-playbook push.ssh.ymal
    #输入root密码

    测试是否下发成功

    ssh root@10.127.7.77如果成功进入出现【root@web1】#则说明成功
    #查看各机器时间
    
    ansible all -a date
    
    #ansible all -m command -a date # 作用同上
    
    #ping
    
    ansible all -m ping
     # 切换root
    
    ansible webservers -m ping -u ansible -sudo

     

    我想,抬头暖阳春草,你给我简单拥抱 我想,踩碎了迷茫走过时光,睁开眼你就会听到
  • 相关阅读:
    命令拷屏之网络工具
    PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 LeetCode 143 重排链表
    Java实现 LeetCode 143 重排链表
  • 原文地址:https://www.cnblogs.com/selectztl/p/9590015.html
Copyright © 2011-2022 走看看