zoukankan      html  css  js  c++  java
  • 开始使用ansible

    ansible是一个设计巧妙,功能强大,安全,使用简单的IT自动化运维工具。它可以实现统一配置管理,持续部署,流程编排等。
    目前控制主机必须是linux,被控制主机可以是linux,类UNIX和windows。

    实验环境

    • 控制主机:windows 10 linux subsystem
    • 被控制主机:centos7 虚拟机

    ansible控制主机的依赖及安装方式

    • Python 2.6及以上
    • paramiko模块
    • PyYAML
    • Jinja2
    • httplib2
    • six

    以上依赖只有在用源码安装方式时才需要使用python-pip工具来安装

    $ sudo pip install paramiko PyYAML Jinja2 httplib2 six
    

    如果是ubuntu,centos等可以使用包安装方式,比如在ubuntu下需要输入如下代码来安装

    ubuntu

    $ sudo apt-get install software-properties-common
    $ sudo apt-add-repository ppa:ansible/ansible
    $ sudo apt-get update
    $ sudo apt-get install ansible
    
    

    centos 7

    $ sudo rpm  –Uvh http:// mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    $ sudo yum install ansible
    
    

    ansible控制主机SSH配置

    • 生成公钥和私钥,名字分别为ansible-control,ansible-control.pub
    $ ssh-keygen -t rsa
    
    • 使用ssh-copy-id将公钥拷贝到被控主机,192.168.137.167是一个centos7 虚拟机。
    $ ssh-copy-id -i /root/ansible-control.pub root@192.168.137.167
    

    ansible-ssh-copy-id

    ansible的常用命令

    • ansible,在命令行中运行,比如使用模块shell在被控主机上执行命令
    $ /bin/echo hello ansible!
    

    写法如下

    $ vim /etc/ansible/hosts
      #增加一个组test,否则默认只能跟自己(localhost)通信
      [test]
      192.168.137.167
    $ ansible 192.168.137.167 -m shell -a '/bin/echo hello ansible!'
    

    上面只是向被控机192.168.137.167发送命令。在正式环境我们需要根据业务需将服务器分组。比如需要在10个服务器上安装tomcat等等。分组信息存储在清单(inventory)中。比如在当前目录中创建文件inventory.cfg并输入以下内容

    $ vi inventory.cfg
    [webserver]
    192.168.137.167
    192.168.137.168
    192.168.137.169
    

    引用inventory.cfg中的服务器组webserver

    ansible -i inventory.cfg webserver -m shell -a '/bin/echo hello ansible!'
    
    • 使用ansible-doc获取帮助信息
    $ ansible-doc -h
    
    • 使用ansible-playbook播放YAML脚本文件
    $ ansible-playbook myplaybook.yml
    

    在执行之前可以使用-C检查YAML脚本文件对被控主机的影响

    $ ansible-playbook -C myplaybook.yml
    
    • 使用ansible-galaxy -h
  • 相关阅读:
    java中将一个文件夹下所有的文件压缩成一个文件
    nodejs 指定全局安装路径和缓存路径
    webstrom 2019.2激活教程+激活工具
    CoreOnLineTransactionService.java
    CoreOnLineTransactionMapper.xml
    短信长度判断:判断是长短信
    sxnx-sms山西农信错误信息+处理方法
    Cannot format given Object as a Date
    cpu个数、核数、线程数、Java多线程关系的理解+物理cpu数和cpu核数和逻辑cpu数和vcpu区别
    如何判断短信内容是否是长短信??
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/6701758.html
Copyright © 2011-2022 走看看