zoukankan      html  css  js  c++  java
  • Ansible的快速入门

        Ansible 是一个简单的自动化引擎,可完成配置管理,应用部署,服务编排等各种IT需求。

    Ansible使用python语言开发实现的开源软件,依赖于Jinjia2,paramiko和PyYAML这几个python库。

    安装Ansible

    可以使用yum或者pip安装。

    yum -y install python-pip
    pip install ansible
    

    Ansible的配置文件

    /etc/ansible/ansible.cfg

    [defaluts]                      
    remort_port= 2092               
    remot_user= scott               
    inventory= /etc/ansible/hosts 
    

      

    配置远程服务器列表

        ansible会默认读取/etc/ansible/hosts配置的远程服务器列表,可以通过/etc/ansible/ansible.cfg修改读取的文件位置。

    [appservers]
     192.168.1.105     #默认的连接用户是root,端口是22,也可以在/etc/ansible/ansible.cfg修改这些默认配置
     120.77.85.76 ansible_port=2085 ansible_user=devop1 #也可以指定指定端口和用户
    
    [dbservers]
    192.168.1.45
    

      注意appservers里的成员我已经配置好了ssh的密钥连接,配置的方方法参考:ssh通过密钥进行连接

    Ansible的ad-hoc模式

    使用ansible命令执行操作的方式成为ad-hoc,对应的playbook方式操作远程服务器。

     格式: ansible  hostname || hostgroup || all   -m module_name  -a  module_args

    使用ping模块

    由于dbservers没有配置ssh密钥连接,需要加上--ask-pass,输入用户的密码,如果是sudo的权限需要加上--ask-become-pass

     

    使用command模块执行shell命令

    由于command模块是默认的模块也可以省略

    另外常见的模块还有copy,file,apt等。

    使用Ansible-playbook

    编写yaml格式的playbook

    ---   
    - hosts: webservers
      become: yes
      become_method: sudo
      tasks:
       - name: ping server
         ping:
       - name: copy file to remote server
         copy: src=/tmp/data.txt dest=/tmp/data.txt
       - name: chnage mode
         file: dest=/tmp/data.txt mode=500 owner=scott group=scott
       - name: ensure packeges installed
         yum: pkg={{ item }} state=present
         with_items:
           - lrzsz
           - git

     hosts关键字声明Playbook应用服务器列表

        become和become_method是在远程服务器通过sudo操作。

        该Playbook包含若干个task,

        第一个是判断服务器是否在线

        第二个是复制本地文件到远程服务器

        第三个是修改文件权限

        第四个是安装软件

  • 相关阅读:
    如何让你的Sublime和Codeblocks支持C++11
    Python print不换行输出的替代方法
    阶梯博弈
    hdu4633_Polya定理
    Ural_1169_Pairs
    ACM竞赛中的魔方问题专题(不定时更新)
    LintCode 35. 翻转链表
    windows中mysql5.7中配置中文字符集和默认datadir
    CentOS7使用打开关闭防火墙与端口
    关于阿里巴巴开发手册"不得使用外键与级联,一切外键概念必须在应用层解决"的疑惑
  • 原文地址:https://www.cnblogs.com/zydev/p/7787826.html
Copyright © 2011-2022 走看看