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
  • 相关阅读:
    触达项目涉及到的功能点
    NodeJS编程基础
    C#Socket通讯
    HTML转义字符大全
    C# 二进制,十进制,十六进制 互转
    浏览器的分类
    Prometheus设置systemctl管理
    第十五讲:Pagerduty的联用
    第十四讲:Prometheus 企业级实际使⽤二
    第十三讲:Prometheus 企业级实际使⽤
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/6701758.html
Copyright © 2011-2022 走看看