集中统一配置管理--ansible-playbook

 Playbook 管理复杂任务

        对于需反复执行的、较为复杂的任务,我们可以通过定义 Playbook 来搞定。Playbook 是 Ansible 真正强大的地方,它允许使用变量、条件、循环、以及模板,也能通过角色 及包含指令来重用既有内容。下面我们来看看一些具体的实例。

      1:更改客户机的系统密码:
       
        建立为**.yaml格式的文件,文件的格式如下:
   集中统一配置管理--ansible-playbook - 亮亮 - 技术成就梦想,梦想创造未来
 


选项解释:   hosts:web   这个是指web主机组。    sudo: yes  是由于我是ubuntu系统,更改密码需要sudo权限。
                        tasks:  任务。         - name: update wolfplus password     给这个任务取的名字。    
                        user:    name=wolfplus  需要更改密码的账户,                                                           
                                     password=$1$i2mkzxtD$M2F/Cx3f8XzUBB/Y4PEYw1   更新后的密码。
                         **:注意,这个password=后面字符串并不是真正的密码,这个是由于ansible对密码口令必须要使用
                         openssl passwd -1 密码   加密,注意加密后的字符串才能被ansible识别。例如上述字符串实际上是由: openssl passwd -1 123 得来的。所以我的真正密码才是123。

好了,我的ansible-playbook文件编辑好了,现在要执行了, 可以敲入:
ansible-playbook passwd.yaml -K由于我使用了sudo切需要密码,所以,我后面必须加-K。输入远程机器上的ssh密码,开始执行,如下面所示:
PLAY [web] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [192.168.0.128]
ok: [192.168.0.133]

TASK: [update wolfplus password] ********************************************** 
changed: [192.168.0.128]
changed: [192.168.0.133]

PLAY RECAP ******************************************************************** 
192.168.0.128              : ok=2    changed=1    unreachable=0    failed=0   
192.168.0.133              : ok=2    changed=1    unreachable=0    failed=0
 
  
密码已经更改生效,我们就可以使用123去登录web那两台机器了。
       
  
 下面我们再来列举一个安装memcached软件的例子。

 我们来编辑apt-get.yaml 文件,文件里面具体类容为:

---
- hosts: web
  sudo: yes
    
  tasks:
   - name: remove memcached
     apt:  pkg=memcached state=present

选项解析:    hosts:web   web所在的主机组。     sudo: yes  启用sudo。     
                      tasks:       -name: 描述任务。     apt:pkg=memcached  利用apt模块,安装软件的包名为: memcached
                      state= present   状态为安装。          state= absent 状态为卸载。

好了,现在开始运行安装memcached。 执行下列命令:ansible-playbook apt-get.yaml -K

sudo password: 

PLAY [web] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [192.168.0.128]
ok: [192.168.0.133]

TASK: [install memcached] ***************************************************** 
changed: [192.168.0.128]
changed: [192.168.0.133]

PLAY RECAP ******************************************************************** 
192.168.0.128              : ok=2    changed=1    unreachable=0    failed=0   
192.168.0.133              : ok=2    changed=1    unreachable=0    failed=0   

看到结果, ok=2    changed=1 说明客户机上的memcached已经安装成功了。


   下面再列举一个关于创建crontab的实例。

   我们来编辑cron.yaml文件,让每月20日来运行wp.sql脚本。具体类容如下:
---
- hosts: web

  tasks:
  - name: cron
    cron: name="test job" day="20" job="/home/wolfplus/wp.sql"

我们来测试下执行远程创建cron,执行  ansible-playbook cron.yaml

PLAY [web] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [192.168.0.128]
ok: [192.168.0.133]

TASK: [cron] ****************************************************************** 
changed: [192.168.0.128]
changed: [192.168.0.133]

PLAY RECAP ******************************************************************** 
192.168.0.128              : ok=2    changed=1    unreachable=0    failed=0   
192.168.0.133              : ok=2    changed=1    unreachable=0    failed=0   

看到   ok=2    changed=1 这类消息说明cron已经创建成功了,我们来验证下:登录到客户机上查看如下:

wolfplus @ubuntu :~$ crontab -l
#Ansible: test job
* * 20 * * /home/wolfplus/wp.sql 

看到创建了一个每月20日,运行wp.sql的任务计划。

好了,测试的实例已经差不多了。大家可以用 ansible-doc -l 命令来查看它内置的有哪些模块。
然后利用 ansible-doc  copy    来查看copy模块的具体用法。


到此,今天测试的ansible的结束了。

你可能感兴趣的:(集中统一配置管理--ansible-playbook)