saltstack—— grains,pillar,jinja模块的使用

本篇博客实验环境详见saltstack安装部署saltstack自动化部署——httpd服务

grains模块的使用

[root@server1 salt]# mkdir _grains
[root@server1 salt]# ls
_grains  httpd  nginx  top.sls
[root@server1 salt]# cd _grains/
[root@server1 _grains]# vim my_grains.py
#!/usr/bin/env python
def my_grains():
    grains = {'foo': 'bar', 'hello': 'world'}
    grains['salt'] = 'stack'
    return grains

写一个.py文件。

[root@server1 _grains]# salt '*' saltutil.sync_grains

在这里插入图片描述
在这里插入图片描述
在server2可以查看到编写的py文件。
在这里插入图片描述

推送时指定键会输出指定的值。

在这里插入图片描述

通过角色ping通主机对应的远程主机,角色的设置在前两篇已经配置。

[root@server1 salt]# salt server2 grains.item fqdn

在这里插入图片描述

pillar模块的使用

Grains很强大,但是其缺点是这些数据相对来说都是静态数据。如果有变化的数据如何处理呢?这时我们就用到了pillar。pillar数据存储在master上。指定的minion只能看到自己pillar数据,其他的minion看不到任何pillar数据,这一点与状态文件正好相反。所有通过认证的minion都可以获取状态文件,但是每隔minion却都有自己的一套pillar数据,而且每台minion的pillar都进行了加密,所以很适用于敏感数据
Pillar是Salt用来分发全局变量到所有minions的一个接口

[root@server1 salt]# vim /etc/salt/master

在这里插入图片描述
打开pillar模块功能。

[root@server1 salt]# mkdir /srv/pillar
[root@server1 salt]# systemctl restart salt-master
[root@server1 srv]# cd pillar/

创建目录重启服务。

[root@server1 pillar]# vim vars.sls 
{% if grains['fqdn'] == 'server3' %}
webserver: httpd
state: master
{% elif grains['fqdn'] == 'server2' %}
webserver: nginx
state: backup
{% endif %}

编写sls文件,对相应主机进行设置。

base:
  '*':			    ##所有主机
    - vars			##刚刚写的sls文件,后缀可以省略,在当前目录。
[root@server1 pillar]# salt '*' pillar.items

在这里插入图片描述

[root@server1 pillar]# salt '*' saltutil.refresh_pillar		##刷新
[root@server1 pillar]# salt -I 'state:master' test.ping

在这里插入图片描述

jinja模块的使用

[root@server1 httpd]# vim install.sls 
httpd-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
      - httpd-tools

  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://httpd/files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja				##jinja模块
      port: 80						##设置端口
[root@server1 httpd]# vim service.sls
include:
  - httpd.install

httpd-service:
  service.running:
    - name: httpd
    - enable: true
    - reload: true
    - watch:
      - file: httpd-install
[root@server1 httpd]# salt server3 state.sls httpd.service

在这里插入图片描述
推送。

[root@server1 httpd]# vim files/httpd.conf 

修改主配置文件
在这里插入图片描述
用变量设置端口。

[root@server1 httpd]# salt server2 state.sls httpd.service

推送到server2.

[root@server2 ~]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述
查看server2的httpd服务的主配置文件,端口已经根据设置的变量修改了。
我们也可以不再模版内的主配置文件编写,直接在install.sls文件编写。

httpd-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
      - httpd-tools

  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://httpd/files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
      port: 80
      host: {{ grains['ipv4'][-1] }}		##设置端口
[root@server1 httpd]# salt server3 state.sls httpd.service

在这里插入图片描述
推送到server3。

[root@server3 ~]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述
在server3查看主配置文件,端口已经修改。
也可以在pillar目录中进行设置。

[root@server1 httpd]# vim /srv/pillar/vars.sls
{% if grains['fqdn'] == 'server3' %}
webserver: httpd
state: master
ip: 172.25.26.3			##ip
port: 80			    ##端口
{% elif grains['fqdn'] == 'server2' %}
webserver: nginx
state: backup
ip: 172.25.26.3
port: 80
{% endif %}
[root@server1 httpd]# vim install.sls 
httpd-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
      - httpd-tools

  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://httpd/files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - context:
      port: {{ pillar['port'] }}		##指定pillar下设置的端口
      host: {{ pillar['ip'] }}		    ##指定ip

[root@server1 httpd]# salt server3 state.sls httpd.service

在这里插入图片描述
推送。

### 回答1: 要在MacBook Pro M1安装Windows 10,需要使用虚拟机软件,例如Parallels Desktop或VMware Fusion。首先需要在Windows 10 ISO文件中创建虚拟机,然后在虚拟机安装Windows 10。需要注意的是,在虚拟机中运行Windows 10可能会导致性能下降。 ### 回答2: 在macbook pro m1安装windows 10是一件可能需要一些技巧和时间的工作,因为由于其专有的arm处理器和其他部件的不同,与传统的x86架构不兼容。以下是我对如何在macbook pro m1安装windows 10的一些见解。 1.下载和准备所需的文件: 首先,你需要确保已经下载了最新版的Bootcamp助手,它支持macbook pro m1,并且需要一个8GB以上的USB闪存驱动器。 2.使用Bootcamp Assistant: 启动Bootcamp助手,并按照它的指示进行操作。然后,Bootcamp会分配给Windows电脑所需的磁盘空间,并在USB闪存驱动器中创建所需的Windows安装文件。 3.进入macOS Recovery模式: 在Macbook Pro上进行安装之前,需要进入到恢复模式,因此您需要将Macbook Pro关机,按住电源按钮,然后在你看到Apple公司的logo时松开它。然后,按住Command和R键并一起按下电源键。当你看到恢复模式屏幕时,你可以在磁盘工具中格式化所需的磁盘空间。必须将其命名为“BOOTCAMP”,因为Windows需要找到该磁盘才能正常安装。 4.安装Windows 10: 现在,你可以通过按住Option键并启动Macbook Pro来启动Windows 10。然后,您可以按照Windows 10的设置向导进行操作来完成其安装。无论你是否打算使用引导策略来管理你的Macbook Pro设备,都会将Windows 10系统安装和配置完成之后出现在启动项中。 总的来说,在在macbook pro m1安装windows 10需要一些耐心和操作技巧,但如果你正确遵循上述步骤,就可以获得一个完美运行的Windows 10安装。如果你遇到任何问题或疑问,建议您访问Windows支持页面或Mac论坛以获取更多帮助和建议。 ### 回答3: MacBook Pro M1是苹果公司近期推出的一款基于ARM架构的电脑,与传统的Intel系列Mac电脑相比,它具有更高的性能和更长的续航时间。尽管MacBook Pro M1在运行macOS Big Sur操作系统方面表现得相当优秀,但有时用户需要安装其他操作系统来满足个性化的需求。其中,Windows 10是个不错的选择,因为它具有广泛的应用适用性。接下来,我们来谈谈在MacBook Pro M1安装Windows 10的方法和一些需注意的事项。 第一步:下载Windows 10的iso镜像文件。我们可以从微软官网上获取这个文件,或从其他可信渠道进行下载。一定要确保我们下载的文件是正版,以避免不必要的法律纠纷。 第二步:启用Boot Camp助手。Boot Camp助手是苹果公司提供的一个工具,可以帮助我们在Mac电脑上安装和使用Windows系统。在开始安装前,我们需要打开Boot Camp助手,并创建一个Windows分区。 第三步:准备U盘或外置硬盘。我们需要将Windows 10安装镜像文件写入U盘或外置硬盘中。因为Mac电脑不支持向CD/DVD光盘写入数据,所以使用U盘或外置硬盘是唯一的选择。 第四步:安装Windows 10。我们需要通过Boot Camp助手启动Mac电脑,并按照提示进行Windows 10的安装安装过程中,我们需要为Windows 10分配硬盘空间,并设置一些基本配置,例如语言、时区和键盘布局等。 需要注意的事项: 1. 由于MacBook Pro M1的处理器是基于ARM架构的,与传统的x86架构Windows系统不兼容。因此,在MacBook Pro M1安装Windows 10时,我们需要选择Windows 10 ARM版本。不过,目前这个版本的应用程序和驱动支持相对较少,可能会导致一些应用程序无法正常工作。 2. 在安装Windows 10时,我们需要按照苹果公司的建议,为Windows系统分配足够的存储空间。建议至少分配100 GB的空间,以确保Windows系统和应用程序能够正常运行。 3. 安装完成后,我们需要手动安装Mac电脑的驱动程序,以确保Mac电脑的各项功能能够正常使用。这些驱动程序可以从苹果公司的官网上获取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值