Ansible 训练营 3

内容介绍

一、ansible ad-hoc模式.

二、主机名设置

三、 一些ad-hoc模式的案例

四、ansible playbook模式

五、ansible playbook核心概念

六、重要配置项目

七、ansible playbook案例

八、小结

一、ansible ad-hoc模式.

  • ansible <主机名> <command>
  • 主机名可以有多种模式,如特定主机、特定组主机、所有主机
  • command支持执行命令、调用模块

二、主机名设置

ad-hoc支持多种不同的主机名模式

  1. all或 * ︰表示所有主机均执行
  2. one.example.com 或192.150.1.1︰表示特定的主机需要执行3. one.example.com:two.example.com︰表示多个主机需要执行
  3. prod: 表示组名需要执行

三、一些ad-hoc模式的案例

  • ansible prod -m shell -a 'echo $TER'`:在prod主机上使用shell 模块调用`echo $TERN`命令
  • ansible prod -m copy -a "src=/etc/hosts dest=/tmp/hosts"︰将本地主机的 hosts文件通过copy命令传递到prod主机上
  • ansible prod -m yum -a "name=acme state=present":在prod主机上安装软件

四、ansible playbook模式

  • playbook是ansible最强大的模式,可以将复杂任务通过一系列简单描述梳理清楚。
  • playbook可以使用源码进行管理,从而更好的管理服务配置

五、ansible playbook核心概念

  • Playbook: Playbook可以视为一个独立的项目,每个 Playbook可以实现不同的命令和需求。比如,根据不同的环境区分、根据不同的业务区分。
  • Play: Playbook中区分不同的Play,可以通过区分Play,可以划分不同的任务。如,在配置主机过程中,就可以分为主机标准化、安全配置、软件安装、部署环境配置等。
  • Task:每一个play包含了一个task列表〈(任务列表)。一个task在其所对应的所有主机上执行完毕之后,下一个task才会执行。
  • Modules:每一个Task都会使用一个特定的Modules 来执行命令,Modules往往和特定的功能进行挂钩,如`yum`主要负责yum 软件管理。`file`主要负责文件管理。
  • Handlers:被触发后执行特定的命令,是Task 的一种表现形式。

六、重要配置项目

  • ask_pass or ask_sudo_pass︰是否请求用户密码或请求sudo密码`inventory `:配置Inventory文件路径
  • `log_path`:日志文件路径
  • 'module_name : ad-hoc模式下使用的默认模块
  • .hosts `: playbook模式下的默认主机,默认值为`*`,即所有主机.
  • 'remote_port:远程主机的默认端口,默认值为22
  • 'remote_user`:远程主机的默认用户,默认值为当前用户

七、ansible playbook案例

[root@ansible PlayBook]# cat testtmp.yml

#模板示例

---

- hosts: all

  remote_user: root

  vars:

    - listen_port: 88    #定义变量

  tasks:

    - name: Install Httpd

      yum: name=httpd state=installed

    - name: Config Httpd

      template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf    #使用模板

      notify: Restart Httpd

    - name: Start Httpd

      service: name=httpd state=started

     

  handlers:

    - name: Restart Httpd

      service: name=httpd state=restarted             

- hosts: webserversvars :

http_port: 80max_clients: 28eremote_user: roottasks:

- name: ensure apache is at the latest versionyum: pkg=httpd state=latest

-name: write the apache config file

template: src=/ srv/httpd.j2 dest=/etc/httpd.confnotify:

- restart apache

- name: ensure apache is runningservice: name=httpd state=startedhandlers:

- nane: rdstart apache

service: name=httpd state=restarted

for more information.ok :[47.104.85.246]

TASK[test server can run] **************************************

ok :[47.104.85.246]

TASK[upgrade all packages]·**********************************

fatal: [47.104.85.246]:FAILED! =>{"ansible_facts": ["pkg_mgr" : "homebrew""}), " changed: false,"msg" : [ "could not detect which majord revnallv specifv use_backend to tell the module whether to use the yum (yum3) or dnf Cyum4) backend})""J3

PLAYRECAP*******************************************

47.104.85.246

: ok-2changed-。

unreachable=0failed-1skipped=

source-codessh root@47.104.85.246

roote47.104.85.246"s password: t

八、小结:

  • Playbook与ad-hoc相比,是一种完全不同的运用ansible的方式,类似与saltstack的state状态文件。
  • ad-hoc无法持久使用,playbook可以持久使用。
  • playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓的task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让它们联合起来按事先编排的机制完成某一任务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值