在开始实际工作之前,初学者需要了解的Ansible相关事项
这篇帖子总结了希望在开始实际工作之前完成教程的人需要知道的事情。由于假设已经完成了教程,所以省略了基本的操作方法等内容。这是给公司内部成员的信,可能存在一定的偏见,但希望对大家有所帮助。
了解文件夹结构
进行更改时,我们应该知道现有内容的所在和写了什么。
在创建新项目时,可以参考ansible官方网站上的最佳实践。
确认自己正在做的事情
除了在开发环境中对自己的虚拟环境进行执行之外,我们应该在执行之前确保自己明确理解自己要做的事情。
有可能会出现”site.yml实际上已经被注释掉了,所以我无法执行自己想做的事情”的情况。
(相反,如果只需要通过更改nginx的配置文件中的一行来进行紧急处理,就执行整个site.yml文件可能是值得考虑的。)
此外,当您第一次在生产环境中执行时,建议您在执行之前先确认命令,并在执行时请旁边的人一同观察。
密码, AnAction
Ansible在进行基础设施建设时需要记录用户/密码等机密信息。如果存在于Git的私人仓库中,即使密码是明文写的,泄露的可能性也很低,但一般情况下我们会进行加密处理。ansible-vault正是用于进行这种加密的工具。
当你在修改现有的 ansible 时,如果在文件的开头行写上了 $ANSIBLE_VAULT;1.1;AES256,那说明这是通过 ansible-vault 加密的文件。
ansible-vault edit (ファイル名)
如果您输入密码,就可以进行编辑。
如果能够在不输入密码的情况下进行编辑的人,我认为在ansible.cfg文件中应该有如下描述指定密码文件的内容。
让我们严密地管理密码。
vault_password_file=~/.ansible_vault_password
在同时对多台服务器执行ansible任务时需要注意的事项
当在生产环境中使用ansible时,目标服务器通常是多台的。在这种情况下,我常常遇到以下两个问题。
只要多台服务器中的一台出现故障,其他服务器的运行不会受到影响。
当执行Ansible时,如果发生错误,执行将会被中断。
但是,即使多台服务器中的一台已经宕机,对其他服务器的执行也不会停止。
因此,当我们认为任务已经顺利完成时,实际上可能在中途有一台服务器出现故障,而导致我们无法知道具体原因。
请不要慌张,可以查看执行日志。
定义的变量不同
如果有多台设备的情况下,所定义的变量也会有所不同。(例如在云端,即使创建相同实例的EC2并进行描述查看,结果可能会微妙地不同)
有一个可用的调试任务可以在那里使用。
- debug: var=変数名
所以,您可以知道该变量中包含了什么。
最终
基础设施领域的范围很广,所以变动必须非常谨慎。
对于新项目,因为是动态或静态的0/1世界,只需注意执行对象以避免对现有其他服务造成影响,我认为可以大胆地进行并积极推进。
那么,拥有美好的ansible生活
[適合初學者] 在實際工作開始前想要了解的系列事項
【新手向】在開始工作之前想了解的試算表知識
【新手向】在開始工作之前想了解的Google Analytics知識
【新手向】在開始工作之前想了解的WordPress知識
【新手向】在開始工作之前想了解的Rails知識