日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Ansible roles角色实战案例:httpd nginx memcached mysql

發(fā)布時間:2025/1/21 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible roles角色实战案例:httpd nginx memcached mysql 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實戰(zhàn)案例

案例1:實現(xiàn) httpd 角色
#創(chuàng)建角色相關(guān)的目錄 mkdir -pv /data/ansible/roles/httpd/{tasks,handlers,files}#創(chuàng)建角色相關(guān)的文件 cd /data/ansible/roles/httpd/vim tasks/main.yml - include: group.yml - include: user.yml - include: install.yml - include: config.yml - include: index.yml - include: service.ymlvim tasks/user.yml - name: create apache useruser: name=apache system=yes shell=/sbin/nologin home=/var/www/ uid=80 group=apachevim tasks/group.yml - name: create apache groupgroup: name=apache system=yes gid=80vim tasks/install.yml - name: install httpd packageyum: name=httpdvim tasks/config.yml - name: config filecopy: src=httpd.conf dest=/etc/httpd/conf/ backup=yesnotify: restartvim tasks/index.yml - name: index.htmlcopy: src=index.html dest=/var/www/html/vim tasks/service.yml - name: start serviceservice: name=httpd state=started enabled=yesvim handlers/main.yml - name: restartservice: name=httpd state=restarted#在files目錄下準(zhǔn)備兩個文件 ls files/ httpd.conf index.htmltree /data/ansible/roles/httpd/ /data/ansible/roles/httpd/ ├── files │ ├── httpd.conf │ └── index.html ├── handlers │ └── main.yml └── tasks├── config.yml├── group.yml├── index.yml├── install.yml├── main.yml├── service.yml└── user.yml3 directories, 10 files#在playbook中調(diào)用角色 vim /data/ansible/role_httpd.yml --- # httpd role - hosts: websrvsremote_user: rootroles:- httpd#運(yùn)行playbook ansible-playbook /data/ansible/role_httpd.yml
案例2:實現(xiàn) nginx 角色
mkdir -pv /data/ansible/roles/nginx/{tasks,handlers,templates,vars}#創(chuàng)建task文件 cd /data/ansible/roles/nginx/vim tasks/main.yml - include: install.yml - include: config.yml - include: index.yml - include: service.ymlvim tasks/install.yml - name: installyum: name=nginx vim tasks/config.yml - name: config file for centos7template: src=nginx7.conf.j2 dest=/etc/nginx/nginx.confwhen: ansible_distribution_major_version=="7"notify: restart - name: config file for centos8template: src=nginx8.conf.j2 dest=/etc/nginx/nginx.confwhen: ansible_distribution_major_version=="8"notify: restartvim tasks/index.yml - name: index.htmlcopy: src=roles/httpd/files/index.html dest=/usr/share/nginx/html/vim tasks/service.yml - name: start serviceservice: name=nginx state=started enabled=yes#創(chuàng)建handler文件 cat handlers/main.yml - name: restartservice: name=nginx state=restarted#創(chuàng)建兩個template文件 cat templates/nginx7.conf.j2 ...省略... user {{user}}; worker_processes {{ansible_processor_vcpus+3}}; #修改此行 error_log /var/log/nginx/error.log; pid /run/nginx.pid; ...省略...cat templates/nginx8.conf.j2 ...省略... user nginx; worker_processes {{ansible_processor_vcpus**3}}; #修改此行 error_log /var/log/nginx/error.log; pid /run/nginx.pid; ...省略...#創(chuàng)建變量文件 vim vars/main.yml user: daemon#目錄結(jié)構(gòu)如下tree /data/ansible/roles/nginx/ /data/ansible/roles/nginx/ ├── handlers │ └── main.yml ├── tasks │ ├── config.yml │ ├── file.yml │ ├── install.yml │ ├── main.yml │ └── service.yml ├── templates │ ├── nginx7.conf.j2 │ └── nginx8.conf.j2 └── vars└── main.yml4 directories, 9 files#在playbook中調(diào)用角色 vim /data/ansible/role_nginx.yml --- #nginx role - hosts: websrvsroles:- role: nginx#運(yùn)行playbook ansible-playbook /data/ansible/role_nginx.yml
案例3:實現(xiàn) memcached 角色
mkdir -pv /data/ansible/roles/memcached/{tasks,templates}cd /data/ansible/roles/memcached vim tasks/main.yml - include: install.yml - include: config.yml - include: service.ymlvim tasks/install.yml - name: installyum: name=memcachedvim tasks/config.yml - name: config filetemplate: src=memcached.j2 dest=/etc/sysconfig/memcachedvim tasks/service.yml - name: serviceservice: name=memcached state=started enabled=yesvim templates/memcached.j2 PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="{{ansible_memtotal_mb//4}}" OPTIONS=""tree /data/ansible/roles/memcached/ /data/ansible/roles/memcached/ ├── tasks │ ├── config.yml │ ├── install.yml │ ├── main.yml │ └── service.yml └── templates└── memcached.j22 directories, 5 filesvim /data/ansible/role_memcached.yml --- - hosts: appsrvsroles:- role: memcachedansible-play /data/ansible/role_memcached.yml
案例4:實現(xiàn) mysql 5.6 的角色
[root@ansible ~]#cat /data/ansible/roles/mysql/files/my.cnf [mysqld] socket=/tmp/mysql.sock user=mysql symbolic-links=0 datadir=/data/mysql innodb_file_per_table=1 log-bin pid-file=/data/mysql/mysqld.pid[client] port=3306 socket=/tmp/mysql.sock[mysqld_safe] log-error=/var/log/mysqld.log[root@ansible ~]#cat /data/ansible/roles/mysql/files/secure_mysql.sh #!/bin/bash /usr/local/mysql/bin/mysql_secure_installation <<EOFy magedu magedu y y y y EOF[root@ansible ~]#chmod +x /data/ansible/roles/mysql/files/secure_mysql.sh[root@ansible ~]#ls /data/ansible/roles/mysql/files/ my.cnf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz secure_mysql.sh[root@ansible ~]#cat /data/ansible/roles/mysql/tasks/main.yml - include: install.yml - include: group.yml - include: user.yml - include: unarchive.yml - include: link.yml - include: data.yml - include: config.yml - include: service.yml - include: path.yml - include: secure.yml[root@ansible ~]#cat /data/ansible/roles/mysql/tasks/install.yml - name: install packages yum: name=libaio,perl-Data-Dumper,perl-Getopt-Long [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/group.yml - name: create mysql groupgroup: name=mysql gid=306 [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/user.yml - name: create mysql useruser: name=mysql uid=306 group=mysql shell=/sbin/nologin system=yes create_home=no home=/data/mysql [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/unarchive.yml - name: copy tar to remote host and file mode unarchive: src=mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz dest=/usr/local/ owner=root group=root [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/link.yml - name: mkdir /usr/local/mysql file: src=/usr/local/mysql-5.6.46-linux-glibc2.12-x86_64 dest=/usr/local/mysql state=link [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/data.yml - name: data dirshell: chdir=/usr/local/mysql/ ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/config.yml - name: config my.cnfcopy: src=my.cnf dest=/etc/my.cnf [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/service.yml - name: service scriptshell: /bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld;chkconfig --add mysqld;chkconfig mysqld on;/etc/init.d/mysqld start[root@ansible ~]#cat /data/ansible/roles/mysql/tasks/path.yml - name: PATH variablecopy: content='PATH=/usr/local/mysql/bin:$PATH' dest=/etc/profile.d/mysql.sh [root@ansible ~]#cat /data/ansible/roles/mysql/tasks/secure.yml - name: secure scriptscript: secure_mysql.sh[root@ansible ~]#tree /data/ansible/roles/mysql/ /data/ansible/roles/mysql/ ├── files │ ├── my.cnf │ ├── mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz │ └── secure_mysql.sh └── tasks├── config.yml├── data.yml├── group.yml├── install.yml├── link.yml├── main.yml├── path.yml├── secure.yml├── service.yml├── unarchive.yml└── user.yml2 directories, 14 files[root@ansible ~]#cat /data/ansible/mysql_roles.yml - hosts: dbsrvsremote_user: rootroles:- {role: mysql,tags: ["mysql","db"]}- {role: nginx,tage: ["nginx","web"]}[root@ansible ~]#ansible-playbook -t mysql /data/ansible/mysql_roles.yml
案例5 :實現(xiàn)多角色的選擇
vim /data/ansible/role_httpd_nginx.yml --- - hosts: websrvsroles:- {role: httpd,tags: [httpd,web], when: ansible_distribution_major_version=="7" }- {role: nginx,tags: [nginx,web], when: ansible_distribution_major_version=="8" }ansible-playbook -t nginx /data/ansible/role_httpd_nginx.yml

參考鏈接:http://www.yunweipai.com/34672.html

總結(jié)

以上是生活随笔為你收集整理的Ansible roles角色实战案例:httpd nginx memcached mysql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。