zoukankan      html  css  js  c++  java
  • ansible常用方法

    1.安装ansible

    yum -y install ansible
    

    2.主机清单推荐格式

    [root@controller ~]# vi /etc/ansible/hosts 
    [controllers]
    # ansible_ssh_port=22
    controller ansible_ssh_host=192.168.100.10
    
    [computes]
    compute ansible_ssh_host=192.168.100.20
    

    3.常用命令

    # 1、ping全部主机
    ansible all -m ping
    
    # 2、查看compute主机的全部信息
    ansible compute -m setup
    
    # 有过滤的作用
    ansible compute -m setup -a "fileter='ansible_fqdn'"
    
    # 模糊匹配
    ansible compute -m setup -a 'filter=*eth0*'
    
    # 3、playbook获取指定变量的方法
    [root@controller ~/ansible]# vim get_info.xml                           
    - hosts: compute
    
      tasks:
        - name: create file named ip address
          shell: "echo {{ ansible_eth0['ipv4']['address'] }} > ~/a.txt"
    
    执行之后
    [root@compute ~]# cat a.txt 
    192.168.100.20
    

    4.Playbook的解耦和

    1、初始化新的Playbook

    # 初始化一个名为install_zabbix剧本
    [root@controller ~]# ansible-galaxy init install_zabbix
    - Role install_zabbix was created successfully
    
    # 各个目录的解释
    [root@controller ~]# tree install_zabbix/
    install_zabbix/         
    ├── defaults              # 低优先级变量
    │   └── main.yml
    ├── files                 # 存放文件,没有变量的配置文件,使用copy推送的时候使用,shell、txt
    ├── handlers              # 触发器文件
    │   └── main.yml
    ├── meta                  # 依赖关系文件
    │   └── main.yml
    ├── README.md
    ├── tasks                 # 工作任务文件
    │   └── main.yml
    ├── templates             # jinja2模板文件,里面有变量,使用temlate推送的文件都可以放到里面。
    ├── tests                 # 测试文件 -C 的时候
    │   ├── inventory
    │   └── test.yml
    └── vars                  # 变量文件,优先级比较高的
        └── main.yml
    
    8 directories, 8 files
    
    # 保证site.yml和要执行的任务在同一个目录就好了。这里移动了一下。
    [root@controller ~/ansible_playbook]# cat site.yml 
    # 模板
    #- hosts: all            <====要运行的主机
    #  roles:
    #      示要执行install_zabbix的这个任务,在m01这个机器上面
    #    - { role: install_zabbix , when: ansible_fqdn == "m01" }
    
    - hosts: all
      roles:
        - { role: install_zabbix }
        
    
    [root@controller ~/ansible_playbook]# ls
    install_zabbix  site.yml
    
    [root@controller ~/ansible_playbook]# cat install_zabbix/tasks/main.yml 
    - name: Send config file zabbix Agent
      template:
        src: zabbix_agentd.conf
        dest: /etc/zabbix/
    
    # 模版文件夹里面的模板文件
    [root@controller ~/ansible_playbook]# cat install_zabbix/templates/zabbix_agentd.conf 
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    
    Server={{ ansible_eth0['ipv4']['address'] }}
    ServerActive={{ ansible_eth0['ipv4']['address'] }}
    Hostname={{ ansible_fqdn }}
    
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    
    # 执行这个文件
    [root@controller ~/ansible_playbook]# ansible-playbook site.yml
    
    # 显示的结果
    [root@compute ~]# cat /etc/zabbix/zabbix_agentd.conf 
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    
    Server=192.168.100.20
    ServerActive=192.168.100.20
    Hostname=compute
    
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    
  • 相关阅读:
    7月23日 R进行层次聚类算法的继续完善
    明天学习的内容
    MySql快速导出为excel文件
    数据挖掘的隐私边界 【转自《中欧商业评论》】
    【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
    7月20日下一步工作
    R对term进行kmeans聚类完整实例(tm包)
    数学之美 系列一 统计语言模型
    7月30日总结
    MathType输入Support 自动分开的问题
  • 原文地址:https://www.cnblogs.com/gshelldon/p/14142241.html
Copyright © 2011-2022 走看看