• ansible的自动化管理


    ansibel学习总结

    基本语法

    列表和字典层级要分明,冒号后面加空格,如下面的例子,刚开始学习的时候,冒号后面没有加空格,导致失败。

    - hosts: httpd
      remote_user: root
      tasks:
        - name: install httpd
          yum: name=httpd state=present
        - name: start httpd service
          service: name=httpd state=started
    

      

    ansible的列表和字典

    列表:每一个列表成员前面都要有一个短横线和一个空格

    fruits:
        - Apple
        - Orange
        - Strawberry
        - Mango
    
    或者:
    fruits: ['Apple', 'Orange', 'Strawberry', 'Mango']
    

      

    字典:每一个成员由键值对组成,注意冒号后面要有空格

    martin:
        name: Martin D'vloper
        job: Developer
        skill: Elite
    或者
    martin: {name: Martin D'vloper, job: Developer, skill: Elite}
    

     实验生成密钥

    [root@localhost ~]# ssh-keygen -t rsa       <== 建立密钥对,-t代表类型,有RSA和DSA两种
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):   <==密钥文件默认存放位置,按Enter即可
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):     <== 输入密钥锁码,或直接按 Enter 留空
    Enter same passphrase again:     <== 再输入一遍密钥锁码
    Your identification has been saved in /root/.ssh/id_rsa.    <== 生成的私钥
    Your public key has been saved in /root/.ssh/id_rsa.pub.    <== 生成的公钥
    The key fingerprint is:
    SHA256:K1qy928tkk1FUuzQtlZK+poeS67vIgPvHw9lQ+KNuZ4 root@localhost.localdomain
    The key's randomart image is:
    +---[RSA 2048]----+
    |           +.    |
    |          o * .  |
    |        . .O +   |
    |       . *. *    |
    |        S =+     |
    |    .    =...    |
    |    .oo =+o+     |
    |     ==o+B*o.    |
    |    oo.=EXO.     |
    +----[SHA256]-----+
    --------------------- 
    传输公钥:
    传输公钥时ip地址后面不见任何东西,默认会在/root下生成.shh,并把公钥传在他的下面

    [root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.8.11

      

    yum模块的学习

    参数名	          是否必须   默认值	 选项值	               参数说明
    conf_file	    不			                       设定远程yum执行时所依赖的yum配置文件
    disable_gpg_check   不	    No	         Yes/No	               在安装包前检查包,只会影响state参数为present或者latest的时候
    list	            No			                       只能由ansible调用,不支持playbook,这个干啥的大家都懂
    name	           Yes			                       你需要安装的包的名字,也能如此使用name=python=2.7安装python2.7
    state	           no	   present	present/latest/absent  用于描述安装包最终状态,present/latest用于安装包,absent用于remove安装包
    update_cache	   no	   no	        yes/no	               用于安装包前执行更新list,只会影响state参数为present/latest的时候
    

      

    service模块的学习

    名称	      必选	    默认值	  可选值	                             备注
    argument       no			                                     如果打开这个标记,backrefs会改变模块的一些操作:insertbefore和insertafter参数会被忽略。当regexp不匹配文件中的任何行时,文件不会做任何修改,否则 使用扩展的line参数 替换 最后一个匹配正则表达式的行
    enabled        no	    yes/no	                                     服务是否开机自动启动。enabled和state至少要有一个被定义
    name	       yes			                                     服务名称
    pattern        no			                                     如果服务没有响应,则ps查看是否具有指定参数的进程,有则认为服务已经启动
    sleep	       no	    EOF	         EOF/*regex*	                     如果服务被重新启动,则睡眠多少秒再执行停止和启动命令
    state	       no		         started,stopped,restarted,reloaded   service最终操作后的状态
    

      

     举例,远程在centos6.5系统上安装mysql

    - hosts: mysqld
      remote_user: root
      tasks:
        - name: install mysqld
          yum: name=mysql state=present
        - name: install mysql-devel
          yum: name=mysql-devel state=present
        - name: install mysql-server
          yum: name=mysql-server state=present
        - name: start mysqld service
          service: name=mysqld state=started
    

      

    远程在centos7上部署mariadb

    - hosts: mariadb
      remote_user: root
      tasks:
        - name: install mariadb
          yum: name=mariadb-server state=present
        - name: start mariadb service
          service: name=mariadb state=started

    -------------------------------------------------------

    - hosts: mariadb
    remote_user: root
    tasks:
    - name: install mariadb
    yum: name=mariadb-server state=present
    - name: start mariadb service
    systemd: name=mariadb state=started

    用systemd或者service模块都可以(都实验成功)

      

  • 相关阅读:
    ubuntu16.04下安装Wineqq+Firefox flash安装+搜狗输入法+截图软件ksnatshot
    集合数据类型
    hadoop2.7ubuntu伪分布式搭建
    广播变量&累加变量
    第一行代码----服务的最佳实践(体会,问题,解决)
    c语言中产生随机数
    如何把StringBuilder类型字符串中的字符换位置
    判断字母的大小写方法(3种)
    方法的参数个数讨论。
    中缀表达式->后缀表达式
  • 原文地址:https://www.cnblogs.com/zhuhaofeng/p/10006399.html
Copyright © 2020-2023  润新知