ansible学习(入职小灰)

版权声明:欢迎转发,不过要带有转发地址哦⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ https://blog.csdn.net/qq_37960324/article/details/82155359

ansible学习

 

学习方向:

了解ansible(从其可以解决什么问题方面入手)

ansible安装与配置

学会使用role

学会编写role

 

 

1:安装配置:

安装配置:参考ansible笔记

弄3台虚拟机搞搞,嘿嘿

linux centos7.2,版本有点旧,不过还凑合

10.0.0.102:server

10.0.0.101:test01

10.0.0.100:test02

 

1:安装yum install ansible -y

这个安装pip yum都随便用,能装出来就行了

喝,乖乖,这么多依赖,看来是对python版本要求还不低啊

查看当前python版本

应该可以用吧,如果想确保没问题,升级成3.x以上肯定没问题的。详细请参考:我就待会写,你能拿我怎么办(~ ̄▽ ̄)~

2:配置vim /etc/ansible/hosts

[root@server ~]# vim /etc/ansible/hosts

在最后直接定义

这里有一点,ansible管理,前提是可以免密登录到客户机上。免密登录谁不会啊,不会就参考: https://blog.csdn.net/qq_37960324/article/details/82153833

 

安装配置简单,直接来个难点的。对于我这种初学者来说, roles模块是一个挑战啊

 

3:roles模块自杀式体验

先写一个简单的剧本,太简单也不行,就看看zabbix-agent吧,至少得改改配置文件。你以为我是挑简单的写么?才不是╭(╯^╰)╮

如果一个公司装了zabbix服务器,那么要加上被监控服务器,一台台装?别做梦了。虽然一般公司都有现成的。但自己写出来理解一个比较容易些。。。

 

1:首先在test02上装个zabbix-server(安装就懒得讲了,后续会专门加上这个zabbix模块的,毕竟现在很多企业都用这个)

2:server上:自己创个目录用来装roles模块

[root@server .ssh]# mkdir -p ansible_playbooks/roles/ zabbix_agent/{tasks,files,templates,meta,handlers,vars,default}

介绍一下:

tasks目录: main.yml,其定义了此角色的任务列表;此文件可以使用include包含其它的位于此目录中的task文件;

files目录:存放由copy或script等模块调用的文件;

templates目录:template模块会自动在此目录中寻找Jinja2模板文件;

handlers目录: main.yml,用于定义此角色用到的各handler;在handler中使用include包含的其它的handler文件也应该位于此目录中;

vars目录: main.yml,用于定义此角色用到的变量;

meta目录: main.yml,用于定义此角色的特殊设定及其依赖关系;

ansible1.3及其以后的版本才支持;

default目录:main.yml,为当前角色设定默认变量时使用此目录。

 

主要记得tasks,files,handler即可---因为第一次搞这个ansible剧本,别见怪啊

还要配置ansible.cfg

[root@server zabbix_agent]# vim /etc/ansible/ansible.cfg

把默认的改成自己创建的路径即可

 

 

好了,忙正事

tasks是个好东西

[root@server zabbix_agent]# vim tasks/main.yml

好心贴出来吧♪(・ω・)ノ

- name: make dictionary for rpm

  command: mkdir -p /service/tools

- name: install zabbix-agent package

  copy: src=zabbix-agent-3.4.2-1.el7.x86_64.rpm dest=/service/tools/zabbix-agent-3.4.2-1.el7.x86_64.rpm

- name: install zabbix-agent

  command: yum localinstall /service/tools/zabbix-agent-3.4.2-1.el7.x86_64.rpm -y

- name: install zabbix-agentd.conf

  copy: src=change.sh dest=/service/tools/change.sh

- name: doing change.sh

  shell: /usr/bin/sh /service/tools/change.sh

- name: start zabbix-agent

  service: name=zabbix-agent enabled=true state=started

记得加执行权限

[root@server zabbix_agent]# chmod +x tasks/main.yml

 

[root@server zabbix_agent]# vim handlers/main.yml

这是,如果有重启的话就执行restart

[root@server zabbix_agent]# chmod +x handlers/main.yml

 

在files目录下,创建change.sh文件和生成zabbix-agent的rpm包

[root@server files]# vim change.sh

[root@server files]# chmod +x change.sh

 

就用着几个了,因为初学,还不太深入

有大神请指教我下咯(~ ̄▽ ̄)~

 

是不是感觉有点少啊,再来个http服务吧,反正不碍事

O(∩_∩)O~~~~

 

 

 [root@server roles]# mkdir -p /lalala/ansible/roles/http_d/{tasks,files,templates,meta,handlers,vars,default}

没毛病

 

[root@server http_d]# vim tasks/main.yml

- name: install httpd package

  yum: name=httpd state=latest

- name: start httpd

  service: name=httpd enabled=true state=started

 

[root@server http_d]# chmod +x tasks/main.yml

[root@server http_d]# vim handlers/main.yml

[root@server http_d]# chmod +x handlers/main.yml

 

[root@server http_d]# vim vars/main.yml

[root@server http_d]# chmod +x vars/main.yml

 

大概够了吧

创建执行目录test_works

与roles在同一目录下

[root@server test_works]# vim zabbix_agent.yml

[root@server test_works]# chmod +x zabbix_agent.yml

[root@server test_works]# vim httpd.yml

[root@server test_works]# chmod +x httpd.yml

 

检查一下

 

测试:

[root@server test_works]# ansible-playbook --check zabbix_agent.yml

没毛病,两个都跑了

(~ ̄▽ ̄)~

 

来来来,开搞O(∩_∩)O!!!

[root@server test_works]# ansible-playbook zabbix_agent.yml

只定义了应该test01:10.0.0.101

没毛病,完成||ヽ(* ̄▽ ̄*)ノミ|Ю

[root@server test_works]# ansible-playbook httpd.yml

也没问题~~||ヽ(* ̄▽ ̄*)ノミ|Ю

检查端口:

没毛病!!!!(~ ̄▽ ̄)~

猜你喜欢

转载自blog.csdn.net/qq_37960324/article/details/82155359
今日推荐