编写这个网站模板要多少钱,便宜做网站公司,如何建一个网站多少钱,网站的汉化包怎么做环境
控制节点#xff1a;Ubuntu 22.04Ansible 2.10.8管理节点#xff1a;CentOS 8
组成
Ansible环境主要由三部分组成#xff1a;
控制节点#xff08;Control node#xff09;#xff1a;安装Ansible的节点#xff0c;在此节点上运行Ansible命令管理节点#xff…环境
控制节点Ubuntu 22.04Ansible 2.10.8管理节点CentOS 8
组成
Ansible环境主要由三部分组成
控制节点Control node安装Ansible的节点在此节点上运行Ansible命令管理节点Managed nodeAnsible所控制的节点主机清单Inventory我们一般通过Ansible来管理多个远程节点那么就需要把所有的节点在逻辑上组织起来比如按照功能划分为若干个组。控制节点通过inventory来管理远程节点
官网 https://docs.ansible.com/ansible/latest/getting_started/index.html 提供的架构如下图所示 特点
用途
消除重复简化流程管理维护系统配置持续部署复杂软件零宕机滚动更新rolling update
优点
无代理架构远程节点无需安装额外的软件维护的开销很小主控节点通过SSH访问远程节点简单性playbook使用YAML语法伸缩性和灵活性简易且快速幂等性和可预测性playbook可多次运行如果系统已处于目标状态则再次运行也没有变化
安装
apt install ansible
环境搭建
注下面都是使用root用户。
首先需要一个inventory文件默认文件为 /etc/ansible/hosts 也可以使用 -i 参数来显式指定。
创建文件 /etc/ansible/hosts 内容如下
[myvms]
192.168.1.55运行 ansible all --list-hosts 如下
➜ ansible ansible all --list-hostshosts (1):192.168.1.55接下来和远程节点建立SSH连接。
把主控节点的private key一般是 ~/.ssh/id_rsa 文件复制到远程节点的 ~/.ssh/authorized_keys/ 目录下如果本地没有就用 ssh-keygen -t rsa 生成一下可以用 ssh-copy-id roothost 来复制。
注ansible可用 -u 参数指定登录用户名。
测试一下 ssh root192.168.1.55 确保可以免密登录。
注 root 可以省略但本地必须是root用户因为复制时两端都使用的root用户。
接下来用 ansible all -m ping 测试连通性
➜ ~ ansible all -m ping
192.168.1.55 | SUCCESS {ansible_facts: {discovered_interpreter_python: /usr/libexec/platform-python},changed: false,ping: pong
}命令行ad-hoc和playbook
命令行ad-hoc
其语法为
ansible [pattern] -m [module] -a [module options]下面是一个“Hello World”例子
➜ ~ ansible all -m debug -a msghello world
192.168.1.55 | SUCCESS {msg: hello world
}Playbook
Playbook由一系列play组成Play由一系列task组成Task由一系列module组成ModuleAnsible运行的代码单元每个module有一个Fully Qualified Collection Name (FQCN)
其语法为
ansible-playbook -i /path/to/my_inventory_file -u my_connection_user -k -f 3 -T 30 -t my_tag -M /path/to/my_modules -b -K my_playbook.yml其中
-i 指定inventory文件-u 指定SSH连接用户名-k 询问SSH连接密码-f 指定N个fork-T 设置超时时间秒-t 只运行指定tag的task-M 从指定路径载入本地module-b executes with elevated privileges (uses become)-K prompts the user for the become password.
例
创建 playbook1.yml 文件内容如下
- name: Hello ansiblehosts: alltasks:- name: PingPingPingansible.builtin.ping:- name: Say helloansible.builtin.debug:msg: Hello world运行
➜ ansible ansible-playbook playbook1.ymlPLAY [Hello ansible] *******************************************************************************TASK [Gathering Facts] *****************************************************************************
ok: [192.168.1.55]TASK [PingPingPing] ********************************************************************************
ok: [192.168.1.55]TASK [Say hello] ***********************************************************************************
ok: [192.168.1.55] {msg: Hello world
}PLAY RECAP *****************************************************************************************
192.168.1.55 : ok3 changed0 unreachable0 failed0 skipped0 rescued0 ignored0 帮助
方法1官网
https://docs.ansible.com/ansible/latest/index.html
方法2命令行
ansible -h 查看 ansible 用法ansible-doc plugin 查看指定plugin用法例如 ansible-doc ping 注可用 ansible-doc -h 查看 ansible-doc 用法。