• 15.Ansible安装与配置简单版


    Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用、安装软件、执行命令、配置和编排任务。

    一、Ansible工作机制

     

    从图中可以看出ansible分为以下几个部份:

    1) Control Node:控制机器

    2) Inventory:主机清单,配置管理主机列表

    3) Playbooks:剧本、任务编排。根据规则定义多个任务,模块组织结构清晰,由ansible自动执行。

    4) ModulesCore | Custom):模块,用于执行某个具体的任务

    5) connection plugin(连接插件):Ansible通过不同的协议连接到远程主机上,执行指定的命令。默认采用ssh协议连接远程主机。

    二、Ansible执行流程

     

    简单理解就是Ansible在运行时,首先读取ansible.cfg中的配置,根据规则获取Inventory中的管理主机列表,并行的在这些主机中执行配置的任务,最后等待执行返回的结果。

    三、安装Ansible

    一台控制主机:192.168.1.103

    三台管理主机:

    192.168.1.101

    192.168.1.102

    192.168.1.103

    安装要求:Python2.6/2.7

    yum安装(推荐)

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

    yum install ansible

    四、配置

    控制主机:用于控制其它机器的主机

    管理主机:被控制主机管理的主机

    1配置管理主机

    vim /etc/ansible/hosts

    hosts文件中添加管理主机的IP地址列

    192.168.1.101

    192.168.1.102

    192.168.1.103

    2、配置控制主机SSH密钥

    ssh-keygen -t rsa

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.101

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.102

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.103

    3ansible配置

    vim /etc/ansible/ansible.cfg

    1)禁用每次执行ansbile命令检查ssh key host

    host_key_checking = False

    2)开启日志记录

    log_path = /var/log/ansible.log

    3)ansible连接加速配置

    [accelerate]

    #accelerate_port = 5099

    accelerate_port = 10000

    #accelerate_timeout = 30

    #accelerate_connect_timeout = 5.0

    # If set to yes, accelerate_multi_key will allow multiple

    # private keys to be uploaded to it, though each user must

    # have access to the system via SSH to add a new key. The default

    # is "no".

    accelerate_multi_key = yes

    五、测试

    最后测试下在三台管理机器批量执行一个ping命令

    ansible all -m ping

    192.168.1.103 | SUCCESS => {

        "changed": false,

        "ping": "pong"

    }

    192.168.1.101 | SUCCESS => {

        "changed": false,

        "ping": "pong"

    }

    192.168.1.102 | SUCCESS => {

        "changed": false,

        "ping": "pong"

    }

    ansible程序结构

    安装目录

    通过使用rpm -ql ansible指令可以查看ansible安装的所有文件位置!

    配置文件目录:/etc/ansible/

    执行文件目录:/usr/bin/

    Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/

    Help文档目录:/usr/share/doc/ansible-X.X.X/

    Man文档目录:/usr/share/man/man1/

    ansible配置文件

    设置/etc/ansible/ansible.cfg配置参数,ansible有许多参数,下面列出常用的参数:

    inventory#这个参数表示资源清单inventory文件的位置,资源清单就是一些ansible需要连接管理的主 机列表。这个参数的配置实例如下:

    inventory = /etc/ansible/hosts

    libraryansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放ansible模块的目录。配置实例如下:

    library = /usr/share/ansible

    ansible命令集

    /usr/bin/ansible    # Ansibe AD-Hoc 临时命令执行工具,常用于临时命令的执行

    /usr/bin/ansible-doc    # ansible 模块功能查看工具

    /usr/bin/ansible-galaxy     # 下载/上传优秀代码或Roles模块 的官网平台,基于网络的

    /usr/bin/ansible-playbook   # ansible 定制自动化的任务集编排工具

    /usr/bin/ansible-pull # ansible远程执行命令的工具,拉取配置而非推送配置(使用较少,海量机器时使用,对运维的架构能力要求较高)

    /usr/bin/ansible-vault # ansible 文件加密工具

    /usr/bin/ansible-console # ansible基于Linux Consoble界面可与用户交互的命令执行工具

    ansible命令详解

    ###命令格式:

    ansible <host-pattern> [-f forks] [-m module_name] [-a args]

    ansible -h

  • 相关阅读:
    [LeetCode] 294. Flip Game II 翻转游戏之二
    [LeetCode] 293. Flip Game 翻转游戏
    [LeetCode] 266. Palindrome Permutation 回文全排列
    [LeetCode] 288. Unique Word Abbreviation 独特的单词缩写
    [LeetCode] Self Crossing 自交
    [LeetCode] 281. Zigzag Iterator 之字形迭代器
    [LeetCode] 251. Flatten 2D Vector 压平二维向量
    [LeetCode] 250. Count Univalue Subtrees 计数相同值子树的个数
    [LeetCode] 249. Group Shifted Strings 群组偏移字符串
    [LeetCode] 248. Strobogrammatic Number III 对称数之三
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11284607.html
Copyright © 2020-2023  润新知