那么Ansible有哪些特点?
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认使用SSH协议对设备进行管理;
有大量常规运维操作模块,可实现日常绝大部分操作;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
提供一个功能强大、操作性强的Web管理界面和REST API接口-AWX平台;
ansible 网站架构实操
编辑: https://www.baimeidashu.com/wp-admin/post.php?post=8582&action=edit
ansible 安装: ansible安装部署
anible:初始化框架:
ansible-galaxy init nfs (初始化 项目框架)
rm -rf defaults/ meta/ README.md
运行:
ansible-playbook /etc/ansible/roles/site.yml
检测:
ansible-playbook --syntax-check /etc/ansible/roles/site.yml
ansible 构建 web 架构
1 环境配置, basic: 步骤
2- 服务安装
ansible 安装NFS : 步骤
ansible 安装 rsync: 步骤
ansible 安装 PHP : 步骤
ansible 安装 nginx : 步骤
ansible 安装 mysql: 步骤
ansible 安装 sersync : 步骤
ansible 安装 ssl 实现https访问: 步骤
3 :业务安装:
wordpress 安装: 步骤 (chaoren399, 123456)
负载均衡 业务(web01,web02): 步骤
高可用 业务 lb01,lb02 : 步骤 (ip a | grep 10.0.0.3)
会话保持 安装 ( Redis), 步骤 (baimei, 123456) 遇到问题: 负载均衡发现问题
4 : 扩展:
yum 本地仓库配置: 步骤
时间同步服务器: 步骤
zabbix 安装: 步骤
总结:
一般来讲,当task失败时,ansible会停止执行失败的那台主机上的任务,但是继续对其他 主机执行
遇到的问题:
安装完 程序后, 只希望执行一次 文件 复制命令, 或者其他的 配置动作 比如mysql 可参考
iptables 共享上网, 其他主机不能上网, 如何通过iptables 来让 其他主机上网呢?
相关的 命令:总结:
多次复制 + 通知 :
- name: copy rsync configure File
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode}}"
loop:
- {src: rsyncd.conf.j2, dest: /etc/rsyncd.conf, mode: '0644'}
- {src: rsync.passwd.j2, dest: /etc/rsync.passwd,mode: '0600'}
notify: Restart Rsyncd Server
hadler:
[root@m01 /etc/ansible/roles]#cat rsync/handlers/main.yml
- name: Restart Rsyncd Server
systemd:
name: rsyncd
state: restarted
复制多个文件 () : 注意 copy 是没有变量, template 是有变量的
- name: copy php.ini www.conf
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
with_items:
- { src: 'php.ini', dest: '/etc/php.ini' }
- { src: 'www.conf', dest: '/etc/php-fpm.d/www.conf' }
when: ansible_hostname is match "web*"
notify: Restart php-fpm
debug:
ansible 使用if判断 生成不同的配置文件:
https://www.baimeidashu.com/8711.html
解压:
- name: unarchive wordpress_code.tar
unarchive:
src: wordpress_1.tar.gz
dest: /code/
creates: /code/wordpress/
notify: mount nfs
执行命令:
- name: file miaoshufu 65535
shell:
cmd: echo '* - nofile 65535' >> /etc/security/limits.conf
copy 复制:
copy:
src: exports
dest: /etc/
检查ping:
ansible all -m ping
php71.tar.gz: https://url69.ctfile.com/f/253469-846055569-076bb9?p=2206 (访问密码: 2206)
ansible 管理机 需要的环境: 步骤
ansible管理机所有的文件:
ansibleall.tar.gz:
https://url69.ctfile.com/f/253469-851700525-e794e6?p=2206 (访问密码: 2206)
欢迎来撩 : 汇总all