赞
踩
ansible是一款自动化运维的工具,基于python开发,集合众多运维工具的优点,可以实现批量的系统配置、程序部署、命令执行等功能。
ansible基于模块工作,本身并没有批量部署的额能力。真正执行的是ansible运行的模块,而ansible只是提供一个框架。
①模块化。调用特定的模块完成特定的任务。
②轻量级,部署简单。没有客户端,节点无需任何操作,主机部署ansible。
③默认使用SSH协议。
④主从集中化管理。
⑤配置简单、功能强大、扩展性强。
⑥可以自定义模块,支持任何编程语言编写模块。
⑦通过playbooks(剧本)来定制强大的配置、状态管理。
⑧具有幂等性,一个操作在一台主机上执行一次和多次结果都一样。
ansible的核心程序,提供一个命令行接口给用户对ansible进行管理操作。
为ansible定义了管理主机的策略。一般小型环境下我们只需要在host文件中写入主机的ip地址即可。但是当中大型环境下,我们可能需要使用静态inventory或者动态主机清单来生成我们需要执行的目标主机。
ansible执行命令的功能模块,多数为内置的核心模块。
如果ansible本身自带的模块无法满足需求,用户可以自定义相应的模块来满足需求。
模块功能的补充,如链接类型插件、循环插件、变量插件、过滤插件等。(该功能不常用)
编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是json格式的yml文件。
供第三方程序调用的应用程序编程接口。
yum install -y epel-release
yum install -y ansible
详细模式,如果执行成功输出详细结果。
指定host文件路径,默认在/etc/ansible/hosts。
NUM默认是整数5,指定fork开启同步进程的个数。
指定使用的moudule名称,默认command模块。
指定模块参数
提示输入SSH密码而不是使用基于ssh密钥认证。
提权,使用root权限。
提示输入sudo密码。
指定移动端的执行用户。
测试命令执行会改变什么内容,不会真正的去执行。
ansible/ansible.cfg
主配置文件,配置ansible工作特性。
ansible/hosts
主机清单
ansible/roles/
存放角色的目录
查看配置文档,模块功能查看工具。
ansible-doc 模块名
ansible-doc -s 模块名
查看简单说明
上传下载代码或模块的官网平台。
列出所有已安装的galaxy
ansible-galaxy list
安装galaxy
删除galaxy
定制自动化任务,编排剧本工具
远程执行命令的工具
文件加密工具
ansible-vault encrypt *.yml
加密yml文件
ansible-vault decrypt *.yml
解密yml文件
ansible-vault view *.yml
查看yml加密文件
ansible-vault edit *.yml
编辑加密文件
ansible-vault rekey *.yml
重新修改加密口令
ansible-vault create new.yml
创建新文件
基于console界面与用户交互的执行工具
用户名@当前操作的主机组(当前组的主机数量)[f:并发数]$
ansible 192.168.10.103
host1 192.168.10.101
修改/etc/ansible/hosts文件
中括号中的是组名,下面可以是ip或者域名。多台主机可以用中括号括起来,用:作为分隔符。比如[1:100]就表示从1到100.
-i 指定hosts文件地址,默认情况下在/etc/ansible/hosts,所以可以省略。
-m 指定使用的模块
command是ansible的默认模块不指定-m参数的时候使用的就是command模块。command模块常见的命令都可以使用但命令的执行不是通过shell来执行的,不支持管道,没法批量执行。
使用shell模块的时候默认是通过/bin/bash来执行的,所有在终端输入的命令都可以执行。
使用scripts模块可以在本地写一个脚本在远程服务器上执行。
ansible -i /etc/ansible/hosts webserver -m command -a “命令”
ansible -i /etc/ansible/hosts webserver -m shell -a “命令”
ansible -i /etc/ansible/hosts webserver -m script -a “/etc/ansible/hosts”
写一个脚本
远程执行
实现宿主机向目标主机拷贝文件,类似scp
ansible -i /etc/ansible/hosts webserver -m copy -a “src=文件 dest=目标位置 owner=属主 group=属组 mode=权限”
PS:如果目标位置不存在该目录时将会自动创建。
修改目标文件权限
ansible -i /etc/ansible/hosts webserver -m file -a “path=目标文件 mode=权限”
也可以修改属主属组
获取远程文件信息
ansible -i /etc/ansible/hosts webserver -m stat -a “path=地址”
实现远程主机下载指定的url地址支持sha256sum文件校验。
ansible -i /etc/ansible/hosts webserver -m get_url -a "url= 参数 "
url 资源在网上的地址
dest 文件下载位置的绝对路径
mode 文件下载位置的绝对路径
checksum 对下载的资源进行校验
timeout URL请求超时时间,默认10s
force 强制下载,有责覆盖。默认为no
远程配置crontab
ansible -i /etc/ansible/hosts webserver -m cron -a “name= ’ ’ minute=’ ’ job=’ '”
时间参数 默认为*
minute :指定分钟
hour :指定小时
day:指定日期
mouth:指定月份
weekday:指定周几
job/value:指定需要执行的命令
name:任务名称
state:present创建/absent移除
user:指定用户
special_time:指定特殊事件(annually每年,daily每天,hourly每小时,mouthly每月,reboot重启时,weekly每周,yearly每年)
disables:yes/no,是否禁用指定的任务,默认为no(只有在state=present时才有意义)
env:yes/no,是否是在设置cron的环境变量,默认为no。如果设为yes,那么name和value参数的值分别代表环境变量的名称和值。
远程管理主机系统服务
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。