ansible

作者: halfming | 来源:发表于2016-12-02 21:47 被阅读213次

    安装

    apt-get install ansible
    

    配置

    cat /etc/ansible/hosts
    [test]
    10.10.10.0.2 ansible_ssh_user=root ansible_ssh_pass=361way.com
    

    执行

    ansible test -a 'uptime'
    ansible 10.10.10.0.2 -a 'date'
    

    帮助

    参数:
      -a 'Arguments', --args='Arguments' 命令行参数
      -m NAME, --module-name=NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
      -i PATH, --inventory=PATH 指定库存主机文件的路径,默认为/etc/ansible/hosts.
      -u Username, --user=Username 执行用户,使用这个远程用户名而不是当前用户
      -U --sud-user=SUDO_User  sudo到哪个用户,默认为 root
      -k --ask-pass  登录密码,提示输入SSH密码而不是假设基于密钥的验证
      -K --ask-sudo-pass 提示密码使用sudo
      -s --sudo sudo运行
      -S --su 用 su 命令
      -l  --list 显示所支持的所有模块
      -s --snippet 指定模块显示剧本片段
      -f  --forks=NUM 并行任务数。NUM被指定为一个整数,默认是5。 #ansible testhosts -a "/sbin/reboot" -f 10 重启testhosts组的所有机器,每次重启10台
      --private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接
      -v --verbose 详细信息
      all  针对hosts 定义的所有主机执行
      -M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/
      --list-hosts 只打印有哪些主机会执行这个 playbook 文件,不是实际执行该 playbook 文件
      -o --one-line 压缩输出,摘要输出.尝试一切都在一行上输出。
      -t Directory, --tree=Directory 将内容保存在该输出目录,结果保存在一个文件中在每台主机上。
      -B 后台运行超时时间
      -P 调查后台程序时间
      -T Seconds, --timeout=Seconds 时间,单位秒s
      -P NUM, --poll=NUM 调查背景工作每隔数秒。需要- b
      -c Connection, --connection=Connection  连接类型使用。可能的选项是paramiko(SSH),SSH和地方。当地主要是用于crontab或启动。
      --tags=TAGS 只执行指定标签的任务    例子:ansible-playbook test.yml --tags=copy  只执行标签为copy的那个任务
      --list-hosts 只打印有哪些主机会执行这个 playbook 文件,不是实际执行该 playbook 文件
      --list-tasks 列出所有将被执行的任务
      -C, --check 只是测试一下会改变什么内容,不会真正去执行;相反,试图预测一些可能发生的变化
      --syntax-check 执行语法检查的剧本,但不执行它
      -l SUBSET, --limit=SUBSET 进一步限制所选主机/组模式  --limit=192.168.0.15 只对这个ip执行
      --skip-tags=SKIP_TAGS 只运行戏剧和任务不匹配这些值的标签  --skip-tags=copy_start
      -e EXTRA_VARS, --extra-vars=EXTRA_VARS  额外的变量设置为键=值或YAML / JSON
            #cat update.yml
            ---
            - hosts: {{ hosts }}
              remote_user: {{ user }}
            ..............
            #ansible-playbook update.yml --extra-vars "hosts=vipers user=admin"   传递{{hosts}}、{{user}}变量,hosts可以是 ip或组名
      -l,--limit 对指定的 主机/组 执行任务  --limit=192.168.0.10,192.168.0.11 或 -l 192.168.0.10
    

    hosts配置

    ansible_ssh_host # 要连接的主机名
    ansible_ssh_port # 端口号默认是22
    ansible_ssh_user # ssh连接时默认使用的用户名
    ansible_ssh_pass # ssh连接时的密码
    ansible_sudo_pass # 使用sudo连接用户是的密码
    ansible_ssh_private_key_file # 秘钥文件如果不想使用ssh-agent管理时可以使用此选项
    ansible_shell_type # shell的类型默认sh
    ansible_connection # SSH 连接的类型: local , ssh , paramiko在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh (支持的前提)
    ansible_python _ interpreter #用来指定 python 解释器的路径,同样可以指定ruby 、perl 的路径
    

    ansible.cfg 配置

    /etc/ansible/ansible.cfg
    [defaults]
    # some basic default values...
    hostfile       = /etc/ansible/hosts   \\指定默认hosts配置的位置
    # library_path = /usr/share/my_modules/
    remote_tmp     = $HOME/.ansible/tmp
    pattern        = *
    forks          = 5
    poll_interval  = 15
    sudo_user      = root  \\远程sudo用户
    #ask_sudo_pass = True  \\每次执行ansible命令是否询问ssh密码
    #ask_pass      = True  \\每次执行ansible命令时是否询问sudo密码
    transport      = smart
    remote_port    = 22
    module_lang    = C
    gathering = implicit
    host_key_checking = False    \\关闭第一次使用ansible连接客户端是输入命令提示
    log_path    = /var/log/ansible.log \\需要时可以自行添加。chown -R root:root ansible.log
    system_warnings = False    \\关闭运行ansible时系统的提示信息,一般为提示升级
    # set plugin path directories here, separate with colons
    action_plugins     = /usr/share/ansible_plugins/action_plugins
    callback_plugins   = /usr/share/ansible_plugins/callback_plugins
    connection_plugins = /usr/share/ansible_plugins/connection_plugins
    lookup_plugins     = /usr/share/ansible_plugins/lookup_plugins
    vars_plugins       = /usr/share/ansible_plugins/vars_plugins
    filter_plugins     = /usr/share/ansible_plugins/filter_plugins
    fact_caching = memory
    [accelerate]
    accelerate_port = 5099
    accelerate_timeout = 30
    accelerate_connect_timeout = 5.0
    # The daemon timeout is measured in minutes. This time is measured
    # from the last activity to the accelerate daemon.
    accelerate_daemon_timeout = 30
    

    相关文章

      网友评论

          本文标题:ansible

          本文链接:https://www.haomeiwen.com/subject/gpmqmttx.html