zoukankan      html  css  js  c++  java
  • Ansible-----常用功能

    local_action

    Ansible 默认只会对控制机器执行操作,但如果在这个过程中需要在 Ansible 本机执行操作就需要使用到local_action

    become:True

    Ansible允许你成为另一个用户,与登录到本机的用户或远程用户不同。

    比如我们需要 root 权限,所以我们必须使用 become 语句。

    serial

    - name: test play
      hosts: webservers
      serial: 3
    

    在上面的例子中,如果我们有100个主机,组“webservers”中的3个主机将完成playbook,然后再移动到接下来的3个主机。

    还可以使用百分比

    serial: "30%"
    

    set_fact模块

    set_fact模块可以自定义facts,这些自定义的facts可以通过template或者变量的方式在playbook中使用。如果你想要获取一个进程使用的内存的百分比,则必须通过set_fact来进行计算之后得出其值,并将其值在playbook中引用。

    - name: Configure MySQL
      hosts: mysqlservers
      tasks:
        - name: install MySql
          yum: name=mysql-server state=installed
     
        - name: Calculate InnoDB buffer pool size
          set_fact: innodb_buffer_pool_size_mb="{{ ansible_memtotal_mb / 2 }}"
     
        - name: Configure MySQL
          template: src=templates/my.cnf dest=/etc/my.cnf owner=root group=root mode=0644
          notify: restart mysql
     
        - name: Start MySQL
          service: name=mysqld state=started enabled=yes
      handlers:
        - name: restart mysql
          service: name=mysqld state=restarted
     
    my.cnf的配置示例:
    # ` ansible_managed `
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted
    security risks
    symbolic-links=0
    # Configure the buffer pool
    innodb_buffer_pool_size = {{ innodb_buffer_pool_size_mb|int }}M
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

    include_tasks模块

    在ansible中,我们可以通过include,在一个playbook中包含另一个文件,以便实现代码的重复利用。

    include_tasks模块用来包含一个任务列表

    include_tasks本身会被当做一个task执行,这个task会把include的文件路径输出到控制台。

  • 相关阅读:
    GDI绘制时钟效果,与系统时间保持同步,基于Winform
    Asp.Net Core API网关Ocelot
    Docker打包 Asp.Net Core应用,在CentOS上运行
    【C#】数据库脚本生成工具(二)
    【C#附源码】数据库文档生成工具支持(Excel+Htm)
    微信小程序初使心得【微信小程序快速入门】
    论:开发者信仰之“天下IT是一家“(Java .NET篇)
    线程池,千万注意,原来很多人都在错用
    .NET跨平台之运行与Linux上的Jexus服务器
    StackExchange.Redis 之 SortedSet 类型示例
  • 原文地址:https://www.cnblogs.com/jinyuanliu/p/10657951.html
Copyright © 2011-2022 走看看