• ansible语法


    ansible语法

    注意:需要提示分发公钥

    ansible test -a "free -h"
    ansible test -m command -a "free -h"
    

    -m:指定模块
    -a:指定参数
    test 对应 /etc/ansible/hosts中的[test]
    all 对应 /etc/ansible/hosts所有ip
    注意:默认模块不支持管道通信

    常用参数

    参数 解释
    -m 模块,默认command
    -a 参数
    -C,--checks 检查,预期执行
    -syntax-checks 检查剧本,预期执行

    颜色说明

    绿:正常
    红:异常
    黄:有变动

    模块详情

    查看模块信息

    ansible-doc -v command
    

    chdir参数的使用:

    ansible test -m command -a "chdir=/etc pwd"
    

    shell模块

    注意:执行时,各主机本地需要存在shell脚本
    与command模块的不同在于,shell模块可以使用变量,管道,定向符号等

    script

    当前节点的本地脚本,远程执行

    #本地节点脚本文件
    cat >/home/centos/sh.sh <<EOF
    #!/bin/bash
    echo $HOSTMANE
    w
    ping qq.com -c 2
    EOF
    #远程执行本地文件
    ansible test -m script -a "/home/centos/sh.sh"
    

    脚本文件不具有执行权限,也可以远程执行命令

    copy

    参数 说明
    backup 是否备份远程已存在的文件
    content 可以设定文件的值
    dest 远端路径
    directory_mode 递归设置目录的权限,默认为系统权限
    forces 文件内容存在差异,forces为yes则覆盖,为no,则不覆盖。默认覆盖。别名:thirsty
    src 路径以/结尾,只复制目录中的文件,否则递归复制所有文件,类似rsync
    mode 权限位设置
    owner 属主
    group 属组

    src 不能和 content一起使用

    copy使用示例

    远程复制

    ansible test -m copy -a "src=/etc/hosts dest=~/ mode=0644 owner=centos group=centos"
    ansilbe test -m shell -a "ls -la ~/host*"
    

    远程执行 主机复制本地文件

    #本地创建一个文件
    touch sh.sh 
    ansible test -m copy -a "src=~/sh.sh dest=~/sh.sh.sh remote_src=true"
    #此时仅能在本地机器上显示复制的文件,表明remote_src为true时只能复制远端已存在的文件
    ansible test -m shell -a "ls -l ~/sh*"
    

    内容传递
    注意:换行符使用 代替

    ansible test -m copy -a "content='hello
    world' dest=~/h.c mod=0600"
    ansilbe test -m shel -a "cat ~/.h.c"
    

    file

    主要用于创建文件,删除文件,设置文件属性

    普通参数

    参数 说明
    owner 属主
    group 属组
    mode 权限
    dest 远端路径
    src 本地路径

    state

    有存在多种状态,如下

    参数 说明
    directory 目录
    file 文件
    link 软链接
    hard 硬链接
    absent 递归删除目录,取消软链接
    touch 创建文件

    注意:不能同时递归创建目录和重命名
    创建目录

    ansible test -m file -a "path=~/a/b/c/d/e/f state=directory"
    ansible test -m shell -a "tree ~/"
    

    递归删除目录

    #根据之前创建的目录
    ansible test -m file -a "dest=~/a state=absent"
    ansible test -m shell -a "ls -l ~/"
    

    创建文件

    ansible test -m file -a "dest=~/a.txt state=touch"
    ansible test -m shell -a "ls ~/"
    

    创建软链接

    #根据之前创建的文件,创建软链接
    ansible test -m file -a "dest=~/softa.txt src=~/a.txt state=link"
    ansible test -m shell -a "ls -l ~/"
    

    创建硬链接

    #先给a.txt文件追加"hello
    world"
    ansible test -m shell -a "rm -f ~/a.txt"
    ansible test -m copy -a "content='hello
    world' dest=~/a.txt"
    ansible test -m shell -a "cat ~/a.txt"
    ansible test -m file -a "dest=~/ahard.txt src=~/a.txt state=hard"
    ansible test -m shell -a "cat ~/ahard.txt"
    ansible test -m shell -a "ls -il | grep a"
    
  • 相关阅读:
    AndroidUI的组成部分ProgressBar
    NVIDIA+关联2015写学校招收评论(嵌入式方向,上海)
    谈论json
    排序算法(三):插入排序
    逻辑地址、线性地址、物理地址以及虚拟存储器
    逻辑地址、线性地址和物理地址的关系
    堆和栈都是虚拟地址空间上的概念
    缺页异常详解
    虚拟内存-插入中间层思想
    深入理解计算机系统之虚拟存储器
  • 原文地址:https://www.cnblogs.com/anyux/p/12002272.html
Copyright © 2020-2023  润新知