ansible基本用法

Posted zoer

tags:

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

ansible

1、 ansible的架构图

技术图片

1)ansible基于ssh基础的配置管理、部署和任务执行系统
2)anisble是一个非常简单的模型驱动的配置管理,多节点部署和远程任务执行系统。Ansible作品通过SSH,不需要安装任何软件或守护进程在远程节点。扩展模块可以用任何语言编写

2 ansible特性

① 模块化:调用特定的模块,完成特定的任务
② 基于Python语言开发,由paramiko、pyyaml和jinja2三个核心库实现
③ 部署简单:agaentless不用代理程序
④ 支持自定义模块
⑤ 强大的playbook机制

3、ansible的安装及使用

1)yum -y install ansible #用yum安装ansible
2)安装成功后执行rpm -ql ansible #查看目录文件

/etc/ansible/ansible.cfg   #ansiblede 配置文S件  
/etc/ansible/hosts       #主机清单  
/etc/ansible/ansible-playbook    #程序  
/etc/ansible/ansible_plugins/   #插件目录 

3)配置主机清单
定义group组名,组名中包括主机名或者主机ip,可以任意定义group,并且主机可以在不同组内重复定义(前提条件是hosts与该主机进行了密钥对认证)

4常用模块使用方法

查看模块用法: ansible-doc -s 模块名
① ping模块:
ansible webservers1[all|webservers2] -m ping
② Command模块:
Ansible webservers -m command -a “ifconfig” #直接执行命令,但不识别管道符
③ shell模块 :在远程主机上调用shell解释器执行命令,支持shell各种功能,比如管道符。
Ansible webservers -m shell -a “echo ‘123’ | passwd --stdin test” #给test用户设置密码为123,但是如果用command模块,该命令则不能执行成功。
④ copy模块: 复制文件到远程主机与生成文件
ansible all -m copy -a “src=/etc/my.cnf dest=/tmp/my.cnf.bak mode=640” #复制源文件到目标文件并指定权限
ansible all -m copy -a “content=’hello world ’ dest=/tmp/ansible.file mode=777” #生成文件到目标文件并指定权限
⑤ file模块: 设置文件属性,设置目标文件状态
ansible webservers2 -m file -a “path=/tmp/my.cnf.bak owner=mysql” #设置/tmp/my.cnf.bak文件的属主为mysql
ansible webservers2 -m file -a “path=/tmp/my.cnf.bak state=absent” #state指定目标状态,目标文件状态为absent,即为删除
ansible webservers2 -m file -a “path=/tmp/test.ansible state=directory” #state目标文件状态为目录,则为创建新文件
ansible webservers2 -m file -a “path=/usr/sbin/nginx src=/usr/local/nginx/sbin/nginx state=link” #创建软连接






















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

ansible基本用法

Ansible自动化运维工具Ansible的playbook基本用法

markdown ansible模板的基本用法

ansible基本用法

41学习自动化运维工具 Ansible 的基本用法,包括剧本编写任务执行

ansible-play中role的基本用法