批量运维工具Ansible安装

批量运维工具Ansible安装
[资源准备]
    在可访问外网的机器上
    创建本地目录
    #mkdir -p /opt/repo/ansible
    下载安装包
    #yum install -y ansible --downloadonly --downloaddir=/opt/repo/ansible
    打包
    #tar -cvf ansible.tar.gz /opt/repo/ansible
    
[上传部署]
    离线服务器(仅主节点)上创建对应目录,上传压缩包并解压
    #mkdir /opt/repo
    #tar -xvf ansible.tar.gz -C /opt/repo/
    主节点安装ansible服务
    #rpm -Uvh /opt/repo/ansible/*
    
[修改配置]
    修改ansible服务主节点配置文件
    添加集群节点, 此处为使用方便,添加3个集群,cdh-cluster,cdh-slave,es-cluster, 可根据实际使用情况自行添加
    #vi /etc/ansible/hosts
        [cdh-cluster]
        cluster1
        cluster2
        cluster3
        cluster4
        cluster5
        [cdh-slave]
        cluster2
        cluster3
        cluster4
        cluster5
        [es-cluster]
        cluster3
        cluster4
        cluster5

[批量命令]        
    命令格式:
        ansible [options]
            host-pattern: ansible的hosts文件中设置的集群名称
            options:
                  -a MODULE_ARGS, --args=MODULE_ARGS
                        模块参数
                  --ask-vault-pass      询问秘钥保管库密码
                  -B SECONDS, --background=SECONDS
                                        异步执行,X秒后无响应则为失败 (默认=N/A)
                  -C, --check           不要作修改;相反地,尽可能预测一些可能发生的情况
                  -D, --diff            当修改(小)文件或模板时,展示这些文件的不同;和 --check搭配使用较好
                  -e EXTRA_VARS, --extra-vars=EXTRA_VARS
                                        如果文件名前置有"@"符号,设置额外的键值对变量或者YAML/JSON格式
                  -f FORKS, --forks=FORKS
                                        明确要使用的并行进程数(默认=5)
                  -h, --help            显示帮助文档并退出
                  -i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
                                        明确清单中的主机路径或以逗号分隔的主机列表. --inventory-file指令已被弃用.
                  -l SUBSET, --limit=SUBSET
                                        将所选主机节点限制为其他模式
                  --list-hosts          输出匹配的主机列表;不执行其他命令
                  -m MODULE_NAME, --module-name=MODULE_NAME
                                        要执行的模块名称 (默认=command命令行)
                  -M MODULE_PATH, --module-path=MODULE_PATH
                                        模块库预设冒号分隔的路径(默认=[u'/root/.ansible/plugins/modules',
                                        u'/usr/share/ansible/plugins/modules'])
                  --new-vault-id=NEW_VAULT_ID
                                        用于重置密钥的秘钥保管库ID标识
                  --new-vault-password-file=NEW_VAULT_PASSWORD_FILES
                                        重置秘钥库的密码文件
                  -o, --one-line        压缩输出,输出为一行
                  -P POLL_INTERVAL, --poll=POLL_INTERVAL
                                        如果使用-B 则设置轮训间隔时间 (默认=15)
                  --syntax-check        为剧本作语法检查,但不执行
                  -t TREE, --tree=TREE  将日志输出至此路径
                  --vault-id=VAULT_IDS  要使用的秘钥保管库ID标识
                  --vault-password-file=VAULT_PASSWORD_FILES
                                        保管库密码文件
                  -v, --verbose         详细模式 (-vvv 展示更多信息, -vvvv 开启连接debug)
                  --version             显示程序版本号并退出
    
    cdh-cluster组所有节点查看ip
    #ansible cdh-cluster -a "ip addr"
    
    ansible 常用的模块有:ping、yum、template、copy、user、group、service、raw、command、shell、script

[常用模块]
    ansible raw 、command 、shell 的区别:
    shell 模块调用的/bin/sh指令执行
    1.command 模块不是调用的shell的指令,所以没有bash’的环境变量
    2.raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是3.使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了

你可能感兴趣的:(Linux)