ansible

Ansible-免密登录与主机清单Inventory

徘徊边缘 提交于 2020-03-16 00:50:33
Ansible的指定用户与密码登录、免密登录、指定ssh端口以及主机清单Inventory配置 在实际使用中并不需要对ansible配置进行修改,或者说只有需要的时候才修改ansible配置。 添加用户账号 说明: 1、 运维人员使用的登录账号; 2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放; 3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。 1 # 使用一个专门的用户,避免直接使用root用户 2 # 添加用户、指定家目录并指定用户密码 3 # sudo提权 4 # 让其它普通用户可以进入该目录查看信息 5 useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun 6 echo "yun ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 7 chmod 755 /app/ 基于密码连接「了解」 在实际生产环境中,建议使用基于秘钥连接而不是密码连接。 原因如下: 1、将密码直接写入文件中,有安全隐患; 2、生产环境的密码可能会定期更换,如果基于密码连接,那么我们也会频繁的维护,造成维护成本高; 3、基于秘钥连接

How to run playbook api in Ansible with vault

早过忘川 提交于 2020-03-15 17:54:32
问题 I have a playbook with vault, and I can run it through: ansible-playbook info.yml --ask-vault-pass Now, I want to run my playbook api in Ansible. The answer in How to run playbook api in Ansible v2 with vault said that we can set loader = DataLoader() loader.set_vault_password('mypass') in 2.2.0.0 API, and I also set these in my api,but it doesn't work. The error message is as follows: Traceback (most recent call last): File "test2.py", line 63, in <module> playbook.run() File "/usr/lib

ansible handlers

无人久伴 提交于 2020-03-15 16:31:29
示例:安装nginx --- - hosts: hadoop #指定主机组 remote_user: root #远程执行命令的用户 gather_facts: no #是否获取远程主机的信息 tasks: - name: install nginx yum: name: nginx state: present notify: restart nginx #通知机制,当这个任务执行的时候,通知handlers执行 - name: start nginx server service: name: nginx state: started handlers: - name: restart nginx service: name: nginx state: restarted 注:在剧本编写完以后,可以使用--syntax-check检查剧本的语法是否有问题,使用--check或者-C来预执行剧本。 handlers的用处:一般是当修改某个配置文件的时候,通过handlers来执行某个任务。 一般情况下,handlers的执行需要在所以的tasks执行完以后才开始执行,那么如果想要在执行某一个tasks以后就执行对应的handlers呢?这个时候需要使用一个模块:meta 用法: - meta: flush_handlers 如: --- - hosts: hadoop

ansible运维自动化环境搭建

我的梦境 提交于 2020-03-14 08:29:58
ansible是开源工具,底层是用python写的 ansible也有web界面,可以直接鼠标点就可以,但是web界面收费 所以大部分企业不会用 web界面 Ansible : Ansible的核心程序 Host Lnventory : 记录了每一个由 Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载 Playbooks : YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能. Core Modules : Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。 Custom Modules : 自定义模块,完成 Ansible核心模块无法完成的功能,此模块支持任何语言编写。 Connection Plugins : 连接插件, Ansible和Host通信使用 Ansible的优点: Stupied Simple ,上手简单,学习曲线平滑 SSH by default ,安全,无需安装客户端 配置简单、功能强大、扩展性强 支持 API及自定义模块,可通过Python轻松扩展

ansible批量执行命令

扶醉桌前 提交于 2020-03-13 14:36:58
批量管理linux服务器指的是:批量执行命令、下发文件等等 安装ansible 1.1: 安装epel源 yum install epel-release -y #编辑/etc/yum.repos.d/epel.repo,注释mirrorlist,打开baseurl 1.2: 安装ansible yum list ansible #ansible版本,如果这个命令运行有问题的话,多运行几次 yum install ansible -y 1.3: ansible查看帮助 ansible-doc -l #查看总帮助 ansible-doc -s shell #查看shell模块的帮助 ansible-doc -s raw 配置主机组(/etc/ansible/hosts) [testgroup] 192.168.56.40 192.168.56.41 192.168.56.42 [test41] 192.168.56.41 [test42] 192.168.56.42 配置ssh免密码登录 ssh-keygen -t rsa#一直按回车即可 ssh-copy-id -i .ssh/id_rsa.pub ip #上传公钥到服务器 ansible模块 ansible语法 ansible 主机组或者主机 -m 模块 -a 命令 2 ansible语法测试 ansible testgroup

Gitlab+Jenkins+Ansible 安装

筅森魡賤 提交于 2020-03-11 19:13:44
Gitlab Gitlab安装配置管理 安装Gitlab前系统预配置准备工作 : 关闭firewalld防火墙 systemctl stop firewalld systemctl disable firewalld 关闭SELINUX并重启系统 vim /etc/sysconfig/selinux SELINUX = disabled # 并重启系统 reboot # 检查是否禁用了 getenforce 安装Omnibus Gitlab-ce package 安装Gitlab组件 yum -y install curl policycoreutils openssh-server openssh-clients postfix 配置YUM仓库 curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 启动postfix邮件服务 systemctl start postfix && systemctl enable postfix 安装Gitlab-ce社区版本 yum install -y gitlab-ce Omnibus Gitlab等相关配置初始化并完成安装 证书创建与配置加载 mkdir -p /etc/gitlab/ssl

使用 Kubernetes 和 Jenkins 创建一个 CI/CD 流水线

天大地大妈咪最大 提交于 2020-03-11 10:21:08
本文首发于: Jenkins 中文社区 原文链接 作者:Mohamed Ahmed 译者:s1mple_zj 文章主要说明了关于 CI/CD 的知识,通过实验结合 Jenkins,Ansible,Kubernetes 将应用程序部署到 k8s 上。 CI/CD 尝试解决什么问题? CI/CD 同 DevOps、Agile、Scrum、Kanban、自动化以及其他术语一样,是一个一起被经常提及的专用术语。有时候,它被当做工作流的一部分,但是并没有搞清楚这是什么或者为什么它会被采用。对于年轻的 DevOps 工程师来说,使用 CI/CD 理所当然已经成为了常态,可能他们并没有看到“传统”的软件发布流程而因此不欣赏 CI/CD。 CI/CD 表示持续集成/持续交付和/或部署。如果一个团队不接入 CI/CD 流程就必须要在产生一个新的软件产品时经历如下的阶段: 产品经理(代表了客户利益)提供了产品需要有的功能以及产品需要遵从的行为。文档必须要越详实越好。 具有业务分析能力的开发人员开始对应用进行编码,执行单元测试,然后将结果提交到版本控制系统(例如 git)。 一旦开发阶段完成,项目移交到 QA。对产品进行多轮测试,比如用户验收测试,集成测试,性能测试。在此期间,直到 QA 阶段完成之前都不会有任何代码上的改动。如果有任何 bug 被发现,需要回退给开发人员做修改,然后再将产品移交给 QA

Ansible Playbook handlers 语句

…衆ロ難τιáo~ 提交于 2020-03-11 09:39:00
handlers 用法如下,表示当 tasks 执行成功之后再执行 handlers,相当于 shell 中的 && 用法,如果 tasks 执行失败是不会执行 handlers 语句的 [root@localhost ~]$ cat handlers.yml --- - name: handlers test hosts: 192.168.119.134 user: root tasks: - name: copy file copy: src=/etc/passwd dest=/tmp/aaa.txt notify: test handlers # 这里要指定执行哪个handlers,对应下面的name,我们可以定义多个handlers,通过 handlers name 来识别不同的handlers handlers: # 表示如果拷贝文件成功,就使用 shell 模块执行 echo "abc" >> /tmp/aaa.txt 命令 - name: test handlers shell: echo "abc" >> /tmp/aaa.txt 来源: https://www.cnblogs.com/pzk7788/p/10216666.html

Ansible基础

不羁岁月 提交于 2020-03-09 13:15:33
Ansible是什麽? 简要来说,是一款自动化运维工具。假如有一百台服务器安装nginx,一台一台装累死,这里就可以用ansible批量安装部署,你想删除你们公司所有Linux服务器的 / ,建议用Ansible,批量删除,从运维小白到监狱风云,一步之遥,就用Ansible。 配置文件hosts server:192.168.28.31 ansible最简单的使用是在Linux命令行中使用,我要测试ansible与被管理的客户端联通性: [root@localhost ansible]# ansible webs -m ping 192.168.28.30 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } 如果出现绿绿的就代表服务端和客户端可以联通并且模块命令正常执行,但是如果是最下面红色的,就表示没有连接通,并且报错。 在上面这个例子我用的最简单的模块ping,但在使用模块执行命令的时候也是需要配置ansible的一个文件的。 上图,文件名为hosts,位置/etc/ansible/hosts(二进制安装) ansible只能管理那些它明确了解的服务器

Ansible免密登录

谁说胖子不能爱 提交于 2020-03-09 12:22:51
Ansible实践篇(一):Ansible免密登录 主要是ansible服务端需要将/root/.ssh/id_rsa.pub分发到其他服务器 有两个命令比较重要 ssh-keygen :这个命令是用来生成本机的公钥和私钥的 ssh-keyscan : 这条命令是用来把远程服务器的公钥来获取到本地的 (1)首先关闭公钥认证 如果说不想关闭公钥认证的话,可以用 ssh-keycan 命令将公钥添加到本地的known_hosts文件里面去 具体命令是 ssh-keyscan IP1 (IP2 ...) >> /root/.ssh/known_hosts 可以添加多个 Ansible1.2.1及其之后的版本都会默认启用公钥认证. 公钥认证就是如果之后的某一台客户端和之前登录过的某一台主机IP相同,那么在“known_hosts”中有了不同的key,这时会提示一个错误信息直到被纠正为止。 在使用Ansible时,可能不想遇到那样的情况,如果有个主机没有在“known_hosts”中被初始化将会导致在交互使用Ansible或定时执行Ansible时对key信息的确认提示。如果想要禁用这个行为的话,可以关闭公钥认证,而且公钥认证会比较慢,也是提高效率的一个方法 关闭公钥认证的方法有两种: - 编辑ansible.cfg配置文件 [defaults] host_key_checking =