美文网首页Linux_Ansible
【Ansible入门2】

【Ansible入门2】

作者: 西布鲁克 | 来源:发表于2021-07-06 23:31 被阅读0次

Ansible使用入门

安装Ansible

pip install ansible

Ansible包含了多个工具。安装完Ansible以后,控制端会增加以下几个可执行程序:

  • ansible
  • ansible-doc
  • ansible-playbook
  • ansible-vault
  • ansible-console
  • ansible-galaxy
  • ansible-pull

Ansible架构

ansible架构图

从上图可以了解到ansible由以下部分组成:

  • 核心:ansible
  • 核心模块(Core Modules):这些都是ansible自带的模块
  • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
  • 插件(Plugins):完成模块功能的补充
  • 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
  • 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
  • 主机群(Host Inventory):定义ansible管理的主机

Ansible的运行环境

Ansible通过读取配置文件/etc/ansible/hosts(如果没有可以新建文件)来确定需要访问和操作的服务器列表


配置文件/etc/ansible/hosts

可以通过Ansible中的ping模块来尝试与主机列表进行访问测试,注意它不是去ping列表中的主机,而是通过尝试建立ssh连接来验证。


测试连接

可以分别为每台需要远程操作的服务器指定用户名和访问端口,修改/etc/ansible/hosts文件即可


配置登录用户名和端口号

如果批量主机的用户名和端口号都一致,则可以通过配置文件/etc/ansible/ansible.cfg来指定统一的默认值


配置统一的默认值

这样就不用每个主机都在/etc/ansible/hosts中指定登录用户名和端口了

ad-hoc模式

ansible的command模块用于在远程服务器中执行指定的shell命令,它通过-a选项来指定命令内容


command模块执行示例

几个常用ansible模块示例:

# 将本地文件拷贝到服务器中
ansible test -m copy -a "src=/tmp/data.txt dest=/tmp/data.txt"
# 修改文件的所有者和权限
ansible test -m file -a "dest=/tmp/data.txt mode=500 owner=root group=root" -become
# 远程服务器安装软件
ansible test -m apt -a "name=tmux state=present" -become

使用playbook控制服务器

除了使用命令行执行简单的ansible操作之外,使用范围更广的是将需要执行的ansible操作写进一个被称为YAML的配置文件中,这样可以执行更复杂的操作。这样的YAML配置文件被称为Ansible Playbook,如下所示:


playbook示例

然后通过命令执行playbook中的内容:

# 执行playbook
ansible-playbook test_playbook.yml
# 查看日志执行playbook
ansible-playbook -vvv test_playbook.yml

相关文章

网友评论

    本文标题:【Ansible入门2】

    本文链接:https://www.haomeiwen.com/subject/enkvultx.html