您的位置:首页 > 其它

ansible使用心得

2019-01-22 19:54 519 查看

ansile作为去除安装agent的自动化工具,通过ssh协议的简单功能强大的自动化工作。

在ansile使用的过程中,有三种用途

1、ansible自行一次性任务,即执行命令如:

ansible 10.59.87.11 -m ping
ansible 10.59.87.11 -m copy -a "src=/etc/issue dest=/tmp/"

执行的方式是:
anbile + 执行的主机可以多种方式匹配(默认在./etc/ansible/hosts中)+ -m 模块 -a "模块的属性"

2、ansible-playbook 执行方式,将任务都写在一个yml文件中,yaml文件可简单可复杂

如执行:ansible-playbook /tmp/scp.yml

等于 ansible 10.59.87.11 -m copy -a "src=/etc/issue dest=/tmp/" 这个效果,yml文件内容如下

- hosts: 10.59.87.11
remote_user: root
vars:
var_has: none
tasks:
- name: scp issue file
copy:
src: /etc/issue
dest: /tmp/

注意:
1、hosts 指定的主机或者主机组一定要在/etc/ansible/hosts中或者通过-i 指定的inventory 文件中
2、如果里面用到template模块,则模块的路径需要在执行的$(dirname /tmp/scp.yml ) 目录下的templates 目录下
3、如果是有notify的使用,handlers可以是目录也可以是直接 handlers关键字指定

ansible-playbook 常用的选项
-C, --check
--verbose 执行显示详情
--syntax-check 语法检查
-D 打印更改的diff
--list-hosts
--list-tags
--list-tasks

来一个httpd的安装的yml文件

- hosts: 10.59.87.11
remote_user: root
vars:
httpd_port: 80
tasks:
- name: ensure apache is at the latest version
yum:
name: httpd
state: latest
- name: install configure file
template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
notify: reload httpd
- name: stop httpd servcie
service: name=httpd state=stopped
tags:
- stop

handlers:
- name: reload httpd
service: name=httpd state=reloaded

cat templates/httpd.conf.j2 (查看jinjia2文件)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ansbile学习概要