首页
友链
Search
1
01-快捷命令
132 阅读
2
寒假计划
128 阅读
3
浏览器规范(ES module)和 node.js 规范(Common JS)
120 阅读
4
03-概念解析
119 阅读
5
学期计划(大三下学期)
102 阅读
计划
算法
面试题
运维
Ansible
Linux
数据库
neo4j
共用
web 前端
CSS
JavaScript
Vue
Node.js
英语单词
工程化
JAVA
mysql
收获
面试
mybatis
Spring
基础
spring-mvc
问题
项目
宠物乐园
速查
问题集
git
学习
sql
二阶段
登录
Search
标签搜索
spring
mysql
vue
ansible
CSS
面试
计划
收获
JAVA面试题
spring-mvc
Starrylsi
累计撰写
106
篇文章
累计收到
37
条评论
首页
栏目
计划
算法
面试题
运维
Ansible
Linux
数据库
neo4j
共用
web 前端
CSS
JavaScript
Vue
Node.js
英语单词
工程化
JAVA
mysql
收获
面试
mybatis
Spring
基础
spring-mvc
问题
项目
宠物乐园
速查
问题集
git
学习
sql
二阶段
页面
友链
搜索到
3
篇与
的结果
2024-04-15
ansible-003 变量
注意使用时注意两个点双括号包裹变量引号包裹整体变量名约束字母保持小写字母,数字,下划线错误示范: linux-name,linux name,linux.name定义变量在 playbook 设置变量# 大致是这样使用的 - name: vars: - [var_name]: [value] #[var-name]是变量名,[value]是值 tasks: - name: unarchive: src: "{{var_name}}" # 引号,双括号 dest: "{{var_name}}"在命令行设置变量-e "var_name=value var_name=value"-e 即 external-var,外部变量ansible-playbook -i hosts my-playbook -e "var_name=values"在外部变量文件设置变量如果是大量的变量那么再在命令行输入就显得不可行,所以我们创建一个存放变量的文件,文件名称 project-vars- name: var_file: - project-vars # 变量文件的名称 tasks: - name: unarchive: src: "{{var_name}}" # 引号,双括号 dest: "{{var_name}}"# project-vars var_name: values # yaml语法
2024年04月15日
23 阅读
0 评论
0 点赞
2024-04-15
ansible-002 部署node应用
部署 node 应用步骤创建一个 Linux 服务器编写 Ansible Playbook在服务器上安装 node & npm复制节点工件并解压缩启动应用检查应用是否成功运行使用的模块npm node command copy unarchive async shell register debug user其他become=true ,默认是 falsebecome_user=为具有所需权限的用户设置 , 默认是 root启动文件获取 node 项目# 将node项目从windos上复制到你的管理主机上,在windos上运行命令: git clone https://gitlab.com/devops-bootcamp3/simple-nodejs scp -r .\simple-nodejs\ user@ip:~目录结构~/simple-node.js ~/ansible/ |--- hosts |--- my-playbook.yaml |--- ansible.cfg文件代码# hosts [droplet] 192.168.136.136 # 1. 节点 [droplet:vars] ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_user=root# my-playbook.yaml --- - name: Configure nginx web server hosts: droplet tasks: - name: install nginx server yum: name: nginx state: latest - name: start nginx server service: name: nginx state: stopped# ansible.cfg [default] host_key_checking = False编写 playbook第一种方法: 使用 copy 和 unarchive 两个模块复制到受控主机解压# ansible/deploy-node.yaml --- - name: Install node and npm hosts: 192.168.136.136 tasks: - name: Update yum repo and cache yum: update_cache=yes - name: Install nodejs npm yum: pkg: - nodejs - npm - name: Deplay nodejs app hosts: 192.168.136.136 tasks: # -------与第二种方法不同之处,建议使用第二种代码更少----------- - name: Copy nodejs folder to a server copy: src: /home/slx/simple-nodejs/nodejs-app-1.0.0.tgz dest: /root/app-1.0.0.tgz - name: Unpack the node file unarchive: src: /root/app-1.0.0.tgz dest: /root/package remote_src: yes # --------------------- - name: Install dependencies npm: path: /root/package - name: Start the application command: chdir: /root/package/app cmd: node server # 在受控主机查看 ps -aux | grep node async: 1000 # 异步运行 poll: 0 - name: Ensure app is running # 在管理机上检查受控主机app是否运行成功 shell: ps aux | grep node register: app_status # 返回结果存入变量中 - debug: msg={{app_status.stdout_lines}} # 打印信息ansible-playbook -i hosts deplay-node.yaml第二种方法: 仅仅使用 unarchive 模块直接将本地文件解压到受控主机# ansible/deploy-node.yaml # 不指定 remote_src会在本地寻找路径 --- - name: Install node and npm hosts: 192.168.136.136 tasks: - name: Update yum repo and cache yum: update_cache=yes - name: Install nodejs npm yum: pkg: - nodejs - npm - name: Deplay nodejs app hosts: 192.168.136.136 tasks: - name: Unpack the node file unarchive: src: /home/slx/simple-nodejs/nodejs-app-1.0.0.tgz dest: /root/ - name: Install dependencies npm: path: /root/package - name: Start the application command: # 执行命令 chdir: /root/package/app cmd: node server # 在受控主机查看 ps -aux | grep node async: 1000 # 异步运行 poll: 0 - name: Ensure app is running # 在管理机上检查受控主机app是否运行成功 shell: ps aux | grep node register: app_status # 返回结果存入变量中 - debug: msg={{app_status.stdout_lines}} # 打印信息 ansible-playbook -i hosts deplay-node.yaml优化: 这两种都是 root 角色来执行命令,会有安全隐患创建一个新用户用这个用户运行应用# ...同上 - name: Create new linux user for node app hosts: 192.168.136.136 tasks: - name: cretate linux user user: name: nana comment: nana Admin group: admin - name: Deplay nodejs app become: true # 开启 become_user: nana #你想设置的用户名称 # ...同上 # 将 [root]替换为 [home/nana] , 即将root用户替换为普通用户
2024年04月15日
40 阅读
0 评论
0 点赞
2024-04-14
ansible-001 基础
1.安装Ansible 是 Python 编写的安装教程在 ansible 官网有只需要在管理主机上安装 ansible 即可2.两种命令方式ad-hocad-hoc 通常用来描述临时性、特定目的的操作或解决方案,与长期规划或结构化方法相对。在 Ansible 中,ad-hoc 命令即为为特定目的而设计的临时性命令,用于快速执行特定任务而无需编写完整的 Playbook。ansible [pattern] -m [module] -a "[module options]"-[pattern]=目标主机和组"all" = 默认组包含每一个主机playbook类似于 shell 脚本-Ansible Playbook 是一种用 YAML 格式编写的文件,用于定义一系列任务和配置项,以实现自动化部署、配置管理和编排。Playbook 包含了一系列 Play 以及对应的任务,可以描述系统的状态和所需的操作,如安装软件、配置文件、启动服务等。通过执行 Playbook,可以实现对远程主机的自动化管理和配置。3.准备受控主机安装 Linux 操作系统需要有安装 Pythonls /usr/bin/python3 查看是否安装4.连接受控主机指定服务器的 ip 地址或主机名称指定服务器的用户名密码或私有 ssh 密钥如果你不会配置密钥可以查看密钥配置文档具体实现# 1. cd ~ # 2. 编写hosts vim hosts 192.168.136.136 ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_user=root # 3. 检查密钥是否生效 ansible all -i hosts -m ping5.主机组您可以将每个主机放在多个组中您可以创建跟踪的群组where - a datacenter/region,e.g.east,westwhat - e.g database servers,web servers etc.when - which stage,e.g. dev,test,prod environmentvim hosts [droplet] 192.168.136.136 ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_user=root6.变量试想 [5.主机组] 中配置 50 个主机,我们会发现私钥路径重复了,这时我们可以通过配置变量来解决重复的问题# 1. vim hosts# 2. [droplet] 192.168.136.136 [droplet:vars] ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_user=rootansible droplet -i hosts -m ping
2024年04月14日
27 阅读
0 评论
0 点赞