• ansible剧本


    ansible-playbook命令格式

    执行顺序:从上往下
    特性:幂等性 不管执行多少遍,结果都是一样的

    1 ansible-playbook [options] playbook.yml [playbook2 ...] 
    2 -C, --check   # 检查,白跑,干跑
    3 -f FORKS, --forks=FORKS #用来做并发
    4 --list-hosts # 列出主机列表
    5 --syntax-check # 语法检查 

     

    一、简单用法

    新建文件(xxx.yml)配置文件,文件名任意,文件内容如下

    1 - hosts: web # 远程主机组
    2   tasks:     # 执行的任务
    3   - name: creategroup   # 创建组
    4     group: name=Tom  # 组名
    5   - name: cretaeuser    # 创建用户
    6     user: name=Andey  # 用户名

    创建完成之后就可以执行,上述文件包含创建用户组和创建用户两个任务

    在执行文件之前有必要检测文件格式的正确性:
    执行命令:ansible-playbook--syntax-check  检查语法,

    若未报错则继续执行文件:
    ansible-playbook  xxx.yml  此时会在远程主机上创建响应的用户和用户组

    查询用户或用户组是否创建成功:

    用户:
    命令1:id user
    命令2:tail -l /etc/passwd

    用户组:tail -l /etc/group

    上述配置文件里的用户或用户组的名都是固定的,接下来是传参的用法

    二、传参

    1 - hosts: web
    2   tasks:
    3   - name: create{{ user }}
    4     user: name={{ user}}

    第一种方式 :-e参数

    1 ansible-playbook -e 'user=alexsb10' p2.yml

    第二种方式:在/etc/ansible/hosts 主机配置文件里直接写入

    1 [db]
    2 192.168.107.132 user=Tom
    3 192.168.107.133 user=Tom

     

    第三种方式:同样在hosts配置文件里:

    1 [db:vars] #表示组的参数
    2 user=Tom

    第四种方式:直接写在ansible的配置文件

    1 - hosts: db
    2   vars:
    3   - user: Tom
    4   tasks:
    5   - name: create{{ user }}
    6     user: name={{ user}}

    第五种方式

    1 - hosts: db
    2   tasks:
    3   - name: sum
    4     shell: echo 7+8|bc
    5     register: user
    6   - name: createuser
    7     user: name={{user.stdout}}

    传参方式的优先级:
    -e > playbook vars > hosts文件

  • 相关阅读:
    MySQL用户
    python -- 中
    Python -- 上
    Zabbix导入数据库时报错
    chmod无执行权限
    编译安装Tengine
    Nginx的调度算法
    nginx--第三方模块echo
    ngx_http_headers_module
    nginx---隐藏或添加后端服务器的信息
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/10408945.html
Copyright © 2020-2023  润新知