ansible 使用指南
1.ansible安装目录:

1.1 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块
ansible-doc -s 模块名 又可以查看该模块有哪些参数可以使用
1.2 ansible-galaxy install username.rolename 从 Ansible Galaxy 网站下载角色;
ansible-galaxy init rolename用于初始化一个新角色的基本文件结构,节省创建不同的目录和main.yml的时间了。
1.3 ansible-playbook -i hosts site.yml 用于执行任务脚本
2.最佳实践目录(来自官方example):

3.hosts 的定义:

4.playbook基本结构:
--- - hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: test
become: root #2.6之前是 sudo: yes tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=/srv/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name=httpd state=started handlers: - name: restart apache service: name=httpd state=restarted
5.配置重用-roles 与 配置过滤-tags
假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成php服务器,第三个要配置成MySQL服务器。我们如何来定义playbook?
第一个play用到第一个主机上,用来构建httpd,第二个play用到第二个主机上,用来构建php,第三个play用到第三个主机上,用来构建MySQL。这些个play定义在playbook中比较麻烦,将来也不利于模块化调用,不利于多次调。比如说后来又加进来一个主机,这个第4个主机既是httpd服务器,又是php服务器,我们只能写第4个play,上面写上安装httpd和php。这样playbook中的代码就重复了。
为了避免代码重复,roles能够实现代码重复被调用。定义一个角色叫websrvs,第二个角色叫phpappsrvs,第三个角色叫dbsrvs。那么调用时如下来调用:
hosts: host1
role:
- websrvs
hosts: host2
role:
- phpappsrvs
hosts: host3
role:
- dbsrvs
hosts: host4
role:
- websrvs
- phpappsrvs
这样代码就可以重复利用了,每个角色可以被独立重复调用。
6.ansible常用模块
ping模块 ------ 检查指定节点机器是否还能连通,用法很简单,不涉及参数,主机如果在线,则回复pong (ansible 10.1.1.113 -m ping) raw模块 ------ 执行原始的命令,而不是通过模块子系统。(raw: yum -y install python-simplejson) yum模块 ------ apt模块 ------ pip模块 ------ synchronize模块 ------ 使用rsync同步文件,将主控方目录推送到指定节点的目录下。参数 delete src dest mode:push/pull rsync_opts template模块 ------ 基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。它的每次使用都会被ansible标记为”changed”状态。) copy模块 ------ 在远程主机执行复制操作文件 user 模块与group模块 ------ user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令 service 模块------ 用于管理服务,记得针对Centos7就不要使用这个模块了 get_url 模块 ------ 该模块主要用于从http、ftp、https服务器上下载文件(类似于wget) fetch模块 ------ 它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。 file模块 ------ 主要用于远程主机上的文件操作(文件、文件夹、软硬连接、属主属组、权限等) unarchive模块 ------ 用于解压文件 command 模块和shell ------ 在各被管理节点运行指定的命令
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


浙公网安备 33010602011771号