系统角色的使用

系统角色的使用

一、系统角色的使用

1、selinux角色

---
- hosts: 192.168.145.162
  vars:
    selinux_state: disabled
  tasks:
    - name: Apply SELinux role
      block:
        - name: role use
          include_role:
            name: selinux
            
      rescue:
        - name:
          fail:
          when: not selinux_reboot_required
          
        - name: Restart managed host
          reboot:
                  
        - name: Reapply SELinux role to complete changes
          include_role:
            name: selinux
---
- hosts: 192.168.145.162
  vars:
    PORT: 82
    selinux_state: enforcing
    selinux_ports:
      - ports: ‘82‘
        setype: ‘http_port_t‘
        proto: ‘tcp‘
        state: ‘present‘
  tasks:
    - name:
      yum:  
        name: httpd
        state: present

    - name:
      include_role:
        name: selinux
        
    - name:
      service:
        name: httpd
        state: started

2、timesync角色

---
- hosts: 192.168.145.162
  vars:
    timesync_ntp_servers:
      - hostname: time1.aliyun.com
        iburst: yes
    power: true
  pre_tasks:
    - debug:
        msg: ‘k1‘
      changed_when: power
      notify:
        - h1
  roles:
    - timesync
  tasks:
    - debug:
        msg: ‘k2‘
      changed_when: power
      notify:
        - h1
  post_tasks:
    - debug:
        msg: ‘k3‘
      changed_when: power
      notify:
        - h1
  handlers:
    - name: h1
      debug:
        msg: h2

二、角色结构构建

1、角色创建流程

在Ansible中创建角色不需要特别的开发工具。 创建和使用角色包含三个步骤:

  • 创建角色目录结构
  • 定义角色内容
  • 在playbook中使用的角色

2、创建角色目录结构

1.默认情况下,Ansible在Ansible Playbook所在目录的roles子目录中查找角色。这样,用户可以利用playbook和其他支持文件存储角色。

2.如果Ansible无法在该位置找到角色,它会按照顺序在Ansible配置设置roles_path所指定的目录中查找。此变量包含要搜索的目录的冒号分隔列表。此变量的默认值为:

~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles

3.这允许用户将角色安装到由多个项目共享的系统上。例如,用户可能将自己的角色安装在自己的主目录下的~/.ansible/roles子目录中,而系统可能将所有用户的角色安装在/usr/share/ansible/roles目录中。

2、使用mkdir

//角色结构
[root@localhost roles]# mkdir zs 
[root@localhost roles]# cd zs/
[root@localhost zs]# mkdir defaults handlers files tasks vars meta templetes
[root@localhost roles]# tree
.
└── zs
    ├── defaults
    ├── files
    ├── handlers
    ├── meta
    ├── tasks
    ├── templetes
    ├── test
    └── vars

3、使用ansible命令

[root@localhost roles]# ansible-galaxy init myroles
- Role myroles was created successfully
[root@localhost roles]# cd myroles/
[root@localhost myroles]# tree
.
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml

8 directories, 8 files

系统角色的使用

上一篇:rabbitmq学习记录


下一篇:零代码搭建一个温度传感器数据采集与显示软件