00:00
好,那么根据我们之前的事例呢,大家可能会发现就是呃,我们之前的这个配置文件呢,都相当于直接写死在这个,呃,就相当于整个配置文件直接写死了,但是有些东西呢,其实啊,我可能有一些可以复用的地方,或者说是经经常需要灵活变动的地方啊,比如说这个,呃,你去连接某个数据库时要用的用户名是吧,或者说是你去连接某个数据库时要用用的一些这个呃,认证token,或者说是一些密码,呃,那么这些时候呢,呃,我们再去修改这个配置文件的多个地方,相对来说呢,就会变得非常的啰嗦麻烦,呃那么其实我们的这个telegraph呢,就给我们提供了在这个配置文件里面使用环境变量的能力啊,通过这个环境变量呢,也相当于我们可以实现一个啊配置模板的复用。那么这个其实呢,对于我们这个云原生的环境,就是docker啊,或者是K8S啊,是非常友好的,好那么接下来呢,我们进行这个操作啊,不过在操作的时候呢,会遇些会遇到一些坑啊呃,所以说呢,我们先按照这个官方文档走一遍,踩到坑的时候呢,我提醒大家具体是什么情况,应该怎么解决。
01:10
嗯,好,先看这个官方文档,其实它说的就是你把环境变量呢,你把你想用的环境变量写在这个文件里面啊,然后呢,在你的这个配置文件里面呢,这样去引用这些变量,你比如你在这个文件里面写的user是吧,等于爱丽丝,那么这个地方呢,就是这样引用。啊,于是呢,你的这个配置文件的最终解析的结果呢,就是这个样子啊,那么他这么一说呢,好像没有毛病,但是现在呢,我们来接下来进行操作给。大家说一下哈,这样下来有什么坑?好,那么首先呢,回到我们的终端,这次呢,我们还是呃,先去复制一个EXCEL01的文件。给他取名呢,叫伊曼零五。好,现在呢,我们去编辑这个EXAMPLE05呢,去给它加个东西,在这里呢,我们给它加一个global t啊,让它所有的数据呢,都带上一个标签。
02:09
Global test。User等于一个,这次呢,我们使用一个环境变量叫user,不过现在呢,其实这个环境变量待会需要我们手动去设置啊。现在是没有这个环境变量的,好,呃,现在呢,我们可以先跑一下这个EXCEL05的配置文件,看看它什么效果。好,接下来呢,我们可以看到,其实这个user这个环境变量呢,在我们这里面并没有被解析啊,它还是原样的那个引用服务,呃,说是这个,呃,那么现在的这个情况呢,就是我们没有整个环境变量里面,整个环境里面没有优色这个变量,那么现在呢,这个是正常的,因为我们就是没有这个变量,对吧?那接下来呢,我们按照这个呃,官方的一个说明,我们去修改这个文件,在这个文件里面上呢,里里面呢,加上一个user这个变量。
03:12
好,现在进行这个操作,我们速度为ETC default,然后底下呢还有个telegraph这个文件。然后在这里面呢,写一个user,等于at硅谷好退出,保保存退出,那么接下来呢,我们去再次运行这个,嗯,EX205,我们看一下,呃,这次这个user这个变量有没有被补上。可以看到这个user这个变量呢,还是没有生效啊,还是没有生效,我们现在呢,把这个机器重启一下reboot。啊,敲个一,然后这里呢,可能需要等一会,我们这个,呃,视频里面呢,就把它剪掉好,那么现在呢,我们已经重启这个整个虚拟机了,接下来呢,我们看一下我们这个还是跑一个EXAMPLE05那个文件先CD过去好,我们现在呢还是跑1Z05。
04:10
那么再加上test,诶可以看到我们现在呢,就有user等于艾特硅谷啊这个呃,Tag了,现在呢,这个我们我们那个美元符号啊,大括号user那个变量被成功解析,呃,那么这个是为什么呢?其实我们现在可以去看一下,首先我在这个。环境变里变量里面依扣一下。美元user会发现我们环境变量里面是有user这个变量的,呃,那么这个操作是谁来给我们做的呢?这个你必须要看我们telegraph的服务文件啊,System control or cat。Telegraph,你会发现在这里面有一个非常重要的配置叫environment file等于ETC def file telegraph,也就是说呃,这个目前这个telegraph这个这个服务进程呢,它是以我们这个是设置的是N宝,也就是说开机自启,那么这个开机自启呢,它就会从这个啊telegraph的这个环境变量的这个文件里面呢,开机的时候就去source一下这个文件,那么这个文件里面声明的变量就会成为我们的环境变量啊,所以说你其实在这个文件里面写的就是在开机时啊,去加载一个环境变量的操作,所以说呢,它其实官网上有一句非常重要的话没有说啊,就是你把这个环境变量呢配到这个文件里面,你必须要让这个服务重启啊,或者说你直接重启这种虚拟机啊,那么是这种情况,也就是说这个。
05:49
底下这个telegraph呢,也就是说你这telegraph这个进程呢,啊,程序其实是和环境边上打交道,它其实并没有在啊telegraph运行时啊,去读取这个文件,然后再去source什么什么东西,就这个source呢,它是服务级别的一个东西,它跟我们现在这个telegraph命令呢没有关系啊,所以说这就是我们为什么啊去这个编辑完这个文件之后,需要重启一下啊,你telegraph con example05。
06:17
我们这条命令的里面的这个变量才能成功的被解析。对吧,那么现在呢,我们再给大家去弄一个,你们可以看到我们现在export,我们使用export命令。然后。可以看到,其实我们现在这个环境变量里面呢,是有user这个变量的啊,那么假如说呢,我现在再去把这个变量改一下,比如说user等于邓紫棋啊,比老师比较喜欢邓紫棋啊,呃,我们在现在再看这个user这个环境变量。Echo一下,我们可以看到user的值已经被换成邓紫棋了,那么现在我TELEGRAPH05啊,零五跑出来是什么呢?可以看到啊,这个变量它现在就是被解析为邓紫棋,所以说它其实是使用的是啊,你telegraph运行时,它外部的一个环境变量的一个一个环境啊,你外部的这个shell的环境变量,它去解析你这里面的呃,Conig里面的这个变量声明最后呢,需要去额外说的就是这个环境变量的写法,如果说呢,你这里面你你需要的是一个字符串,那么你必须给它加上双引号,如果呢,你需要的是布尔值或者数字,那么双引号是不需要加的啊,那么这就是我们在这个配置文件里面使用环境变量的用法啊,当然我们在这里写这个格global text呢,它必须是用字符串了,对吧?好,那么这就是我们示例五的全部内容。
我来说两句