ansible详解

Posted stacks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible详解相关的知识,希望对你有一定的参考价值。

Ansible介绍

ansible是一款轻量级的自动化管理工具,相对于puppet,saltstack来说它更加的轻量化,用python编写。支持多种指令操作,同时也支持playbook。通过ssh进行通信,客户端无需安装客户端即可进行批量管理。

ansible组成

技术分享图片

  • ansible:主要的服务,用于调用其他各种组件;
  • inventoy:用于存储要控制的主机,包括主机用户名密码等信息;
  • playbooks:用于制定各种playbook;
  • core modules:ansible的核心模块,ansible依赖各种模块进行服务器控制;
  • custome modules:自定义模块;
  • connect plugins:调用python的并发连接器进行服务器连接;
  • other plugins:其他插件,例如日志记录,邮件等;

ansible控制方式

  • 免密钥控制
  • 通过inventoy记录主机ip地址(主机名)、用户名密码进行控制

ansible命令执行方式

  • 通过调用各种模块进行命令执行
  • 通过编写playbook进行服务器各种管理工作

ansible配置文件

  • /etc/ansible/ansible.cfg:ansible配置文件
  • /etc/ansible/hosts:inventoy配置文件

ansible获取帮助信息

ansible-doc -s 模块名

ansible常用模块

command:用于执行命令,但是不能应用变量,管道等
ansible test -m command -a ‘date‘

shell:类似command,可以用变量,管道等
ansible test -m shell -a ‘echo 1234567a |passwd test --stdin‘

user常用选项:

  • name:用户名
  • password:密码
  • state:present为添加,absent为删除
  • remove:删除用户,yes|no
  • system:是否为系统用户
  • createhome:是否创建家目录
  • shell:指定用户shell
  • group:设置基本组
  • groups:设置夫家族
  • uid:指定uid
    ansible test -m user -a ‘name=hello password=123456 state=present system=yes createhome=no‘

group常用选项:

  • name:组名
  • gid:gid
  • state:present为创建,absent为删除
  • system:是否为系统组
    ansible all -m group -a ‘name=hello system=yes state=present‘

cron常用选项:

  • day:天,1-9,,/3
  • hour:小时
  • month:月
  • name:cron任务名
  • state:present,absent
  • weekday:周
  • minute:分钟
  • job:工作内容
    ansible all -m cron -a ‘minute=*/1 name="echo hello world" job="echo hello world" state=present‘

copy常用选项:

  • src:源文件绝对路径或相对路径
  • dest:目标地址,必须是绝对路径
  • content:可以代替src,要写入到dest文件中的内容,会echo追加进去
  • owner:属主
  • group:属组
  • backup:覆盖文件之前是否备份,yes|no
  • directory_mode:递归设定目录权限
  • force:yes,如果文件存在,但是内容不同,则强行覆盖,默认选项;no,如果文件不存在才复制

    ansible test -m copy -a ‘src=/etc/fstab dest=/tmp/fstab.ansible owner=test group=hello‘
    ansible test -m copy -a ‘content="hello world" dest=/tmp/log.ansible‘    #把hello world写入目标文件

file常用模块:

  • owner:属主
  • group:属组
  • mode:权限
  • recurse:递归设置,对目录有限
  • state
    • touch:创建一个空白文件
    • directory:创建一个新目录,目录存在则不会修改
    • link:创建软链接
    • hard:创建硬链接
    • absent:删除
  • src:当state=link的时候,要被链接的源文件





以上是关于ansible详解的主要内容,如果未能解决你的问题,请参考以下文章

ansible plugins简介

ansible roles详解+搭建LAMP架构

运维简介&Ansible详解

自动化运维工具——ansible详解案例分享

ansible深入理解和操作——03(roles详解+搭建LAMP架构)

Ansible详解