Ansible实战演示

目录结构:1、Hosts:主机清单文件;2、group_var:存放全局变量;3、 rloes:存放具体操作,每一个role下的目录如下图:4、site.yaml:启动操作文件,存放批量操作规则,即主机对应的roles操作
操作步骤

1、 创建hosts文件:具体内容是被管理的主机地址,实例如下:

[YUM]172.16.7.1 ANSIBLE_SSH_PASS="234"
[K8SMASTER]
172.16.7.2 ANSIBLE_SSH_PASS="1234"
[NGINX]
172.16.7.1 ANSIBLE_SSH_PASS="1234"
172.16.7.2 ANSIBLE_SSH_PASS="1234"


其中,[YUM]表示组名, hosts文件主要是对被管理主机进行分组管理。
2、 创建site.yaml文件:指明hosts中对应的组要进行的操作,需注意此文件为yaml文件,所以要注意格式问题,实例如下:

#为所有主机关闭防火墙
- HOSTS: ALL
    ROLES:
  - COMMON

#创建私有YUM源
- HOSTS: YUM
   ROLES:
       - YUMRESOURCE

其中,HOSTS参数指明需进行操作的主机分组,ROLES指明需使用哪个规则来对该类主机进行操作。


3、 创建group_var文件夹,再创建all文件,将需要使用到的全局变量放进去,实例如下:

# VARIABLES HERE ARE APPLICABLE TO ALL HOST GROUPS

HTTPD_PORT: 80
NTPSERVER: 192.168.1.2
#MYSQL
MYSQLSERVICE: MYSQLD
MYSQL_PORT: 3306
DBUSER: ROOT
UPASSWORD: ROOT

4、 创建rloes文件夹,再创建每一个具体的role文件夹,一般一些公共的操作,会放到以common命名的rrole中,每一个role文件夹中至少要有一个tasks文件夹,里面至少要有一个man.yaml文件,里面是一些要进行的task。实例如下:

#关闭防火墙等设置


#关闭并禁止防火墙开机自启
- NAME: DISABLED FIREWALL
SERVICE: NAME=FIREWALLD STATE=STOPPED ENABLED=NO
  TAGS: FIREWALLD


#关闭LINUX自带防火墙
- NAME: CLOSE SELINUX
  SHELL: SETENFORCE 0


#关闭LINUX自带防火墙
- NAME: CLOSE SELINUX IN CONFIGUR FILES
COPY: SRC=SELINUX DEST=/ETC/SYSCONFIG/SELINUX

5、 将创建的文件夹上传到控制主机中,切换到对应的文件目录,执行启动文件,命令:

ansible-playbook -i hosts site.yml
  • ansible-playbook -i hosts site.yml

rloes详解

一般一个典型的role文件夹,会有:
1、 file:存放一些不会改变的文件和一些安装包之类;
2、 handler:主要用来进行重启工作;
3、 tasks:主要是自己写操作步骤
4、 templates:主要是Jinja2模板文件




遇到过的一些问题


1、 ansible本身有很多变量可以供我们使用,但这些变量是比较难掌握的;有些时候你不知道它是从哪里来的;有些时候,可能不知道为什么有些变量可以在playbook中使用,却不能再site文件的规则中使用;有些时候,可能不知道使用环境是什么样的
2、 Jinja2模块的语法和ansible是不同的,二者不可以混用;
3、 copy和template模块不可混用,二者虽然都有copy文件的功能,但本质上是不同的,copy是拷贝file下的文件,template是拷贝templates下的模板文件;
4、 使用条件判断when的时候,不能是带有{{}}格式的变量,如果是这种情况,就需将非系统变量做一个显性的定义,例如:
- NAME: WRITE MYID FILE
SHELL: ECHO “{{ITEM.0+1}}” > /ROOT/ZOOKEEPER-3.4.6/DATA/MYID
WITH_INDEXED_ITEMS: “{{GROUPS.ZOOKEEPER}}”
VARS:
PARAM: “{{ITEM.1}}”
WHEN: ANSIBLE_DEFAULT_IPV4.ADDRESS==PARAM
其中, when: ansible_default_ipv4.address==param就不能直接写成
when: ansible_default_ipv4.address=={{item.1}}
  • 发表于 2022-07-29 14:25
  • 阅读 ( 3349 )
  • 分类:Ansible

0 条评论

请先 登录 后评论
乐维君
乐维君

397 篇文章

作家榜 »

  1. 乐维君 397 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章