ansible Roles与优化

目录

[1.include 文件包含](#1.include 文件包含)

1.nfs_server_tasks.yml

2.nfs_client_tasks.yml

3.main_nfs.yml

2.Roles

3.vault

4.Galaxy

5.优化

5.1性能优化

5.2安全


1.include 文件包含

当一个ansible剧本的内容过多时 涉及到多个play时 较为复杂时 可以通过include把小的剧本拼接成大的剧本

例如我们可以将NFS 服务客户端和服务端 两个剧本写到一个剧本中通过include_tasks引入

例如

1.nfs_server_tasks.yml

---
- name: Install NFS server on CentOS
  yum:
    name: nfs-utils
    state: present

- name: Start and enable NFS service
  service:
    name: nfs-server
    state: started
    enabled: true

- name: Configure firewall for NFS on CentOS
  firewalld:
    service: nfs
    permanent: true
    state: enabled
    immediate: true

2.nfs_client_tasks.yml

---
- name: Install NFS client on CentOS
  yum:
    name: nfs-utils
    state: present

- name: Create mount point directory on client
  file:
    path: /mnt/nfs
    state: directory

- name: Mount NFS share on client
  mount:
    name: /mnt/nfs
    src: "{{ nfs_server_ip }}:/export/nfs"
    fstype: nfs
    opts: defaults

3.main_nfs.yml

---
- name: Configure NFS client and server on CentOS
  hosts: all
  become: true

  tasks:
    - name: Install NFS packages on server
      yum:
        name:
          - nfs-utils
          - nfs-utils-lib
          - nfs-kernel-server
      when: inventory_hostname in groups['nfs-server']

    - name: Create export directory on server
      file:
        path: /export/nfs
        state: directory
      when: inventory_hostname in groups['nfs-server']

    - name: Set up NFS server exports
      nfs_export:
        path: /export/nfs
        clients:
          - client_ip_or_network/24(rw,sync,no_subtree_check)
      when: inventory_hostname in groups['nfs-server']

    - name: Restart NFS server
      service:
        name: nfs-server
        state: restarted
      when: inventory_hostname in groups['nfs-server']

    - name: Install NFS client packages on client
      yum:
        name: nfs-utils
      when: inventory_hostname in groups['nfs-client']

  # Include tasks for NFS server configuration
  - include_tasks: nfs_server_tasks.yml
    when: inventory_hostname in groups['nfs-server']

  # Include tasks for NFS client configuration
  - include_tasks: nfs_client_tasks.yml
    when: inventory_hostname in groups['nfs-client']

2.Roles

当我们使用剧本时发现 存放混乱这时候我们可以使用 Roles让文件剧本存放的更为简洁明了

实际上就是换个地方存放目录更为简洁 更为规范 是一种模块化思想

3.vault

加密指定文件 ansible-vault用于加密高敏感信息

hosts 加密

变量文件加密

4.Galaxy

在官网上下载别人写好的剧本 进行使用十分方便简洁

5.优化

5.1性能优化

ssh连接速度优化,关闭UseDNS,GSSAPIAuthcation ...

不要让ansible运行交互式的命令,非要用使用命令的非交互模式

需要使用ans,yum安装软件,可以自建本地yum仓库,然后ans安装.(自建yum源,自己制作的rpm包)

调整ansible并发数量(-f 调整并发数量 默认是5 ansible.cfq forks=5,实际调整根据负载情况。)

给ansible配置缓存(redis)队列.缓存facts.

给主机进行分组操作与管理.

关闭gather_facts,如果不用facts变量可以关闭,剧本中:qather_facts: false配置文件:gathering=explicit

关闭host,key,check 一般使用密码认证的时候需要关闭,如果不关闭 ansible配置文件host key checking = False

5.2安全

配置sudo用户 ans ALL=(ALL) NOPASSWD:ALL 密码是1,ssh端口是 22

配合vpn,jms一起使用

用户--->vpn---->ims(跳板机)---->ansible。

用户的密码,进行加密( hash,ansible-vault)

相关推荐
学Linux的语莫5 小时前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
Nightwish56 小时前
ansible操作随记(一)
ansible
qq_383139849 小时前
ansible playbook安装nacos
ansible
Aimyon_364 天前
⾃动化运维利器 Ansible-Jinja2
运维·ansible
柒月VII5 天前
【Ansible常用命令+模块+Playbook+Roles】
linux·服务器·ansible
Linux运维技术栈5 天前
生产环境centos8 & Red Hat8部署ansible and 一键部署mysql两主两从ansible脚本预告
运维·数据库·mysql·自动化·ansible
Aimyon_365 天前
⾃动化运维利器 Ansible-最佳实战
linux·运维·ansible
饭桶也得吃饭5 天前
运维工具Ansible部署、配置
运维·服务器·ansible
陪小七许个愿5 天前
Ansible一键部署Kubernetes集群
容器·kubernetes·ansible
Aimyon_366 天前
⾃动化运维利器 Ansible-变量
运维·ansible