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
  • 相关阅读:
    LeetCode
    LeetCode
    static,final,包,访问修饰符,内部类
    抽象类和抽象方法接口和多态
    抽象类和抽象方法
    memcache的使用、版本使用和相关配置
    apache mysql无法启动解决办法
    thinkphp实现文件的下载
    xampp 出现403 无法访问问题(已解决)
    Thinkphp使用phpexcel导入文件并写入数据库
  • 原文地址:https://www.cnblogs.com/linyouyi/p/10431042.html
Copyright © 2011-2022 走看看