zoukankan      html  css  js  c++  java
  • ansible的安装及基本使用

    1.安装ansible

    如果没有版本和别的要求,这里直接使用yum安装

    yum -y install ansible

    查看版本

    [root@0006 ~]#ansible --version
    ansible 2.4.2.0
      config file = /etc/ansible/ansible.cfg
      executable location = /usr/bin/ansible
      python version = 2.7.5

    2.Ansible 功能详解
    配置文件

    配置文件或指令描述
    /etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性
    /etc/ansible/hosts 主机清单
    /etc/ansible/roles/ 存放角色的目录
    /usr/bin/ansible 主程序,临时命令执行工具
    /usr/bin/ansible-doc 查看配置文档,模块功能查看工具
    /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
    /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
    /usr/bin/ansible-pull 远程执行命令的工具
    /usr/bin/ansible-vault 文件加密工具
    /usr/bin/ansible-console 基于Console界面与用户交互的执行工具

    3.主机清单
    Ansible必须通过Inventory 来管理主机。Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置。
    语法格式:

    //单台主机
    green.example.com    //   FQDN
    192.168.100.10       //   IP地址
    192.168.100.11:2222  //   非标准SSH端口
    
    [webservers]         //   定义了一个组名     
    alpha.example.org    //   组内的单台主机
    192.168.100.10 
    
    [dbservers]
    192.168.100.10       //   一台主机可以是不同的组,这台主机同时属于[webservers] 
    
    [group:children]     //  组嵌套组,group为自定义的组名,children是关键字,固定语法,必须填写。
    dns                  //  group组内包含的其他组名
    db                   //  group组内包含的其他组名
    
    [webservers] 
    www[001:006].hunk.tech // 有规律的名称列表,
    //这里表示相当于:
    www001.hunk.tech
    www002.hunk.tech
    www003.hunk.tech
    www004.hunk.tech
    www005.hunk.tech
    www006.hunk.tech
    
    [databases]
    db-[a:e].example.com   //   定义字母范围的简写模式,
    //这里表示相当于:
    db-a.example.com
    db-b.example.com
    db-c.example.com
    db-d.example.com
    db-e.example.com
    
    //以下这2条定义了一台主机的连接方式,而不是读取默认的配置设定
    localhost       ansible_connection=local
    www.163.com     ansible_connection=ssh        ansible_ssh_user=hunk
    
    //最后还有一个隐藏的分组,那就是all,代表全部主机,这个是隐式的,不需要写出来的。

    4.ansible命令

    [root@0006 ~]# ansible dns -m ping       # 使用ansible对dns组内的主机进行ping模块测试
    [root@0006 ~]# ansible dns -m ping -k    #加上-k选项后,会提示输入ssh密码了。
    [root@0006 ~]# ansible dns -m command -a 'free'
    [root@0006 ~]# ansible mfs -m shell -a "curl 'http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS' > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS"
    [root@0006 ~]# ansible wo -m shell -a "sed -i '/ntpdate/d' /var/spool/cron/root"
    [root@0006 ~]# ansible wo -m shell -a "echo '0 20 * * * /usr/sbin/ntpdate 192.168.2.1 && /sbin/clock -w > /dev/null 2>&1' >>/var/spool/cron/root"

    Ansible常用命令语法

    ansible <host-pattern> [-m module_name] [options]
    //指令 匹配规则的主机清单 -m 模块名 选项
    
    --version //显示版本
    -a //模块参数(如果有)
    -m module //指定模块,默认为command
    -v //详细过程 –vv -vvv更详细
    --list-hosts //显示主机列表,可简写--list
    -k, --ask-pass //提示连接密码,默认Key验证
    -K,--ask-become-pass //提示使用sudo密码
    -C, --check //检查,并不执行
    -T, --timeout=TIMEOUT //执行命令的超时时间,默认10s
    -u, --user=REMOTE_USER //执行远程执行的用户
    -U, SUDO_USER, --sudo-user //指定sudu用户
    -b, --become //代替旧版的sudo 切换
    
    ansible-doc: //显示模块帮助
    ansible-doc [options] [module...]
    
    -a //显示所有模块的文档
    -l, --list //列出可用模块
    -s, --snippet //显示指定模块的简要说明
    
    //例子:#ansible-doc ping
    
    //由于ansible的模块有1378个(2.4.2.0),并且一直在持续更新。因此,这个指令必须要掌握的。
    #ansible-doc -l |wc -l
    1378
  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/linyouyi/p/10431042.html
Copyright © 2011-2022 走看看