1 00:00:06,320 --> 00:00:11,499 [Music] 2 00:00:15,519 --> 00:00:18,880 okay our final speaker today is tan and 3 00:00:17,920 --> 00:00:22,000 he's going to be talking about 4 00:00:18,880 --> 00:00:22,000 configuration management 5 00:00:22,080 --> 00:00:26,800 good afternoon and good day to everyone 6 00:00:24,640 --> 00:00:29,439 who's still sticking around with me in 7 00:00:26,800 --> 00:00:31,760 this linux conference australia welcome 8 00:00:29,439 --> 00:00:34,000 to my playtime with configuration how 9 00:00:31,760 --> 00:00:35,840 did i get from shell script to ansible 10 00:00:34,000 --> 00:00:37,280 galaxy 11 00:00:35,840 --> 00:00:38,640 before i begin 12 00:00:37,280 --> 00:00:40,960 i would like to acknowledge the 13 00:00:38,640 --> 00:00:43,520 traditional custodian of the land which 14 00:00:40,960 --> 00:00:45,360 the talk is being streamed and record i 15 00:00:43,520 --> 00:00:48,800 would also like to pay my respect to 16 00:00:45,360 --> 00:00:51,440 their elders past and present 17 00:00:48,800 --> 00:00:54,800 so what is this about this is actually a 18 00:00:51,440 --> 00:00:56,960 summary of my journey on how i discover 19 00:00:54,800 --> 00:00:58,160 the tools that i use to do my 20 00:00:56,960 --> 00:01:00,559 performance 21 00:00:58,160 --> 00:01:01,920 to performing my configuration 22 00:01:00,559 --> 00:01:04,799 management 23 00:01:01,920 --> 00:01:07,520 i started doing configuration on linux 24 00:01:04,799 --> 00:01:09,119 system back in year 2000 25 00:01:07,520 --> 00:01:10,560 it was not fun i actually started doing 26 00:01:09,119 --> 00:01:13,680 it manually 27 00:01:10,560 --> 00:01:15,680 and then i i upskill myself to start 28 00:01:13,680 --> 00:01:18,159 using shell script 29 00:01:15,680 --> 00:01:20,640 but it's not fun especially when i have 30 00:01:18,159 --> 00:01:22,720 more than one distro to manage in my 31 00:01:20,640 --> 00:01:23,920 fleet it become very complex and 32 00:01:22,720 --> 00:01:27,200 complicated 33 00:01:23,920 --> 00:01:30,159 to to to manage the shell script 34 00:01:27,200 --> 00:01:33,680 and later i discovered configuration 35 00:01:30,159 --> 00:01:36,079 tools the power of cf engine and puppet 36 00:01:33,680 --> 00:01:37,920 but for whatever reason i never liked 37 00:01:36,079 --> 00:01:40,479 either one of them 38 00:01:37,920 --> 00:01:42,479 and eventually in 2012 i actually 39 00:01:40,479 --> 00:01:45,840 discovered ansible 40 00:01:42,479 --> 00:01:49,119 when i first started to use siber i only 41 00:01:45,840 --> 00:01:51,119 used the very basic module like scrib 42 00:01:49,119 --> 00:01:54,079 to run my shell script 43 00:01:51,119 --> 00:01:57,439 and over the time i slowly understand 44 00:01:54,079 --> 00:02:00,240 the power of ansible module and i move 45 00:01:57,439 --> 00:02:02,479 my shell script into ansible module 46 00:02:00,240 --> 00:02:05,520 and eventually i 47 00:02:02,479 --> 00:02:07,680 organize my ansible into rows 48 00:02:05,520 --> 00:02:10,000 and today i'm going to share the two 49 00:02:07,680 --> 00:02:12,160 extreme ends of my journey 50 00:02:10,000 --> 00:02:14,720 the dark age when i use salscript for 51 00:02:12,160 --> 00:02:18,160 configuration and the bright galaxy when 52 00:02:14,720 --> 00:02:19,040 i start to play with nc bird 53 00:02:18,160 --> 00:02:20,640 but 54 00:02:19,040 --> 00:02:23,520 who am i 55 00:02:20,640 --> 00:02:26,640 my name is dan sir heng 56 00:02:23,520 --> 00:02:29,200 that's the cartoon sketch of me 57 00:02:26,640 --> 00:02:30,400 but in australia i'm actually called sir 58 00:02:29,200 --> 00:02:32,959 hang ten 59 00:02:30,400 --> 00:02:35,519 also known by my last name tan 60 00:02:32,959 --> 00:02:38,000 but some people still calling me by my 61 00:02:35,519 --> 00:02:40,800 first name which is sir 62 00:02:38,000 --> 00:02:43,519 uh i answer to anyone of that 63 00:02:40,800 --> 00:02:44,720 and um i'm a linux user a linux 64 00:02:43,519 --> 00:02:46,879 enthusiast 65 00:02:44,720 --> 00:02:49,440 which i have been 66 00:02:46,879 --> 00:02:51,920 playing or learn about computers since 67 00:02:49,440 --> 00:02:52,800 the 90s i start with playing computer 68 00:02:51,920 --> 00:02:55,920 games 69 00:02:52,800 --> 00:02:58,640 not too sure anyone know karateka 70 00:02:55,920 --> 00:03:01,200 command conquer counter-strike and 71 00:02:58,640 --> 00:03:05,440 counter-strike global offense and so on 72 00:03:01,200 --> 00:03:06,560 those are a few games i play in previous 73 00:03:05,440 --> 00:03:08,239 and then 74 00:03:06,560 --> 00:03:12,480 when i graduated in 75 00:03:08,239 --> 00:03:15,280 year 2000 i got employed as a 76 00:03:12,480 --> 00:03:17,200 junior system administrator 77 00:03:15,280 --> 00:03:19,200 web developers kind of position in an 78 00:03:17,200 --> 00:03:20,159 e-commerce 79 00:03:19,200 --> 00:03:22,480 company 80 00:03:20,159 --> 00:03:24,720 which they have a fleet of 81 00:03:22,480 --> 00:03:25,680 five physical servers that's running on 82 00:03:24,720 --> 00:03:28,080 linux 83 00:03:25,680 --> 00:03:30,720 and they're providing the e-commerce 84 00:03:28,080 --> 00:03:34,000 solution to the customer and that's when 85 00:03:30,720 --> 00:03:36,799 i discover and learn about linux 86 00:03:34,000 --> 00:03:38,640 and since then i've been learning living 87 00:03:36,799 --> 00:03:41,680 and learning linux 88 00:03:38,640 --> 00:03:44,319 linux become my bread and butter so much 89 00:03:41,680 --> 00:03:46,319 that i'm now being employed as linux 90 00:03:44,319 --> 00:03:48,480 system administrator 91 00:03:46,319 --> 00:03:51,760 if i'm not wearing my geeky hat i 92 00:03:48,480 --> 00:03:55,200 actually love watching anime cartoon and 93 00:03:51,760 --> 00:03:58,159 all sorts of movies and i 94 00:03:55,200 --> 00:04:01,040 if i have time i tend to build my lego 95 00:03:58,159 --> 00:04:02,640 if i have place to actually display it 96 00:04:01,040 --> 00:04:05,519 if not there will be n up in the box 97 00:04:02,640 --> 00:04:06,640 behind me it's still in the box 98 00:04:05,519 --> 00:04:09,280 so 99 00:04:06,640 --> 00:04:11,599 what is this configuration and why do i 100 00:04:09,280 --> 00:04:15,200 think it's important especially to linux 101 00:04:11,599 --> 00:04:17,359 system administration like myself 102 00:04:15,200 --> 00:04:19,600 configuration is very very important 103 00:04:17,359 --> 00:04:20,799 because they actually make the it system 104 00:04:19,600 --> 00:04:22,800 work 105 00:04:20,799 --> 00:04:24,320 imagine that you have a apache server 106 00:04:22,800 --> 00:04:26,000 that you installed 107 00:04:24,320 --> 00:04:27,440 but you didn't do any setup and 108 00:04:26,000 --> 00:04:29,840 configuration 109 00:04:27,440 --> 00:04:32,240 do you think you'll be able to 110 00:04:29,840 --> 00:04:34,080 serve your company website 111 00:04:32,240 --> 00:04:35,440 how about you have just installed 112 00:04:34,080 --> 00:04:37,520 mariadb 113 00:04:35,440 --> 00:04:40,000 do you think you'll be able to log in 114 00:04:37,520 --> 00:04:42,720 and enter data without proper setup and 115 00:04:40,000 --> 00:04:44,080 configuration i doubt you can 116 00:04:42,720 --> 00:04:45,199 and that's why 117 00:04:44,080 --> 00:04:47,280 we need 118 00:04:45,199 --> 00:04:49,680 a discipline an engineering process 119 00:04:47,280 --> 00:04:52,160 configuration management that will help 120 00:04:49,680 --> 00:04:55,199 us to establish and maintain the 121 00:04:52,160 --> 00:04:57,360 consistency in the it infrastructure by 122 00:04:55,199 --> 00:04:58,639 ensuring our design 123 00:04:57,360 --> 00:05:01,120 our system 124 00:04:58,639 --> 00:05:03,360 the state of our application and 125 00:05:01,120 --> 00:05:06,479 services in the environment they are 126 00:05:03,360 --> 00:05:08,240 running in being managed tracked and 127 00:05:06,479 --> 00:05:09,120 trusted 128 00:05:08,240 --> 00:05:11,919 to me 129 00:05:09,120 --> 00:05:13,759 a tool that do that is very important 130 00:05:11,919 --> 00:05:16,639 because it will 131 00:05:13,759 --> 00:05:19,039 be the utility to ensure the consistency 132 00:05:16,639 --> 00:05:21,680 that we want in our infrastructure it 133 00:05:19,039 --> 00:05:24,400 will also be the enablement to ensure 134 00:05:21,680 --> 00:05:26,479 that we can scale up or down our 135 00:05:24,400 --> 00:05:29,440 infrastructure and software 136 00:05:26,479 --> 00:05:32,320 and lastly the most important bit to me 137 00:05:29,440 --> 00:05:35,120 is he actually remove and reduce all the 138 00:05:32,320 --> 00:05:36,960 repetitive and boring bits of system 139 00:05:35,120 --> 00:05:40,080 administration and configuration tasks 140 00:05:36,960 --> 00:05:41,600 that i've been doing manually 141 00:05:40,080 --> 00:05:43,360 now 142 00:05:41,600 --> 00:05:45,759 let me bring you back in time to the 143 00:05:43,360 --> 00:05:48,479 dark edge when i do shell script 144 00:05:45,759 --> 00:05:48,479 configuration 145 00:05:49,759 --> 00:05:54,000 i will need the 146 00:05:51,360 --> 00:05:56,240 the menu apache web server installation 147 00:05:54,000 --> 00:05:59,680 on center 7 and then i'm going to 148 00:05:56,240 --> 00:06:00,639 customize my web server landing page 149 00:05:59,680 --> 00:06:02,560 so 150 00:06:00,639 --> 00:06:04,240 first i need to do 151 00:06:02,560 --> 00:06:05,680 is 152 00:06:04,240 --> 00:06:07,840 sudo to root 153 00:06:05,680 --> 00:06:12,720 and then i'm going to install 154 00:06:07,840 --> 00:06:14,800 the web server with a php module 155 00:06:12,720 --> 00:06:17,440 after installation of apache web server 156 00:06:14,800 --> 00:06:19,520 complete we need to enable it and start 157 00:06:17,440 --> 00:06:20,960 the service and the next thing i'm going 158 00:06:19,520 --> 00:06:24,240 to do is i'm going to create a 159 00:06:20,960 --> 00:06:25,759 customized landing page as well as a php 160 00:06:24,240 --> 00:06:27,600 info page 161 00:06:25,759 --> 00:06:29,840 let's check the 162 00:06:27,600 --> 00:06:32,319 customize web server 163 00:06:29,840 --> 00:06:33,520 yup and let's see the 164 00:06:32,319 --> 00:06:36,639 info page 165 00:06:33,520 --> 00:06:39,600 for the php and we would be using 166 00:06:36,639 --> 00:06:42,160 php version 5. installing apache web 167 00:06:39,600 --> 00:06:44,400 server with a customized index page is 168 00:06:42,160 --> 00:06:46,080 very simple and straightforward with 169 00:06:44,400 --> 00:06:49,360 manual steps 170 00:06:46,080 --> 00:06:51,199 but that is only possible or feasible if 171 00:06:49,360 --> 00:06:52,080 you have one two 172 00:06:51,199 --> 00:06:53,199 three 173 00:06:52,080 --> 00:06:55,280 maybe 174 00:06:53,199 --> 00:06:58,000 five web servers 175 00:06:55,280 --> 00:06:59,520 but in a web server farm usually we have 176 00:06:58,000 --> 00:07:01,919 more than 10 177 00:06:59,520 --> 00:07:05,039 hundred or thousand web servers is going 178 00:07:01,919 --> 00:07:06,080 to be a lot of menu typing when we do it 179 00:07:05,039 --> 00:07:09,680 manually 180 00:07:06,080 --> 00:07:12,000 therefore i started to use shell script 181 00:07:09,680 --> 00:07:14,080 i created a few cell script based on the 182 00:07:12,000 --> 00:07:17,599 manual step that i have done for example 183 00:07:14,080 --> 00:07:19,039 centos 7 setup.sh i have jump install 184 00:07:17,599 --> 00:07:21,440 and the customize 185 00:07:19,039 --> 00:07:23,759 index page but 186 00:07:21,440 --> 00:07:26,400 this file is only cater for 187 00:07:23,759 --> 00:07:29,199 centos 7 installation it will not work 188 00:07:26,400 --> 00:07:31,280 for other distro for example ubuntu 189 00:07:29,199 --> 00:07:33,440 because ubuntu used a different 190 00:07:31,280 --> 00:07:37,120 application installation method called 191 00:07:33,440 --> 00:07:40,319 apt and the apache web server in ubuntu 192 00:07:37,120 --> 00:07:41,599 is not http is apache too 193 00:07:40,319 --> 00:07:43,520 and therefore i need to create a 194 00:07:41,599 --> 00:07:46,080 separate script for it 195 00:07:43,520 --> 00:07:48,639 uh if i have other digital i might need 196 00:07:46,080 --> 00:07:51,199 to create more script to educator for 197 00:07:48,639 --> 00:07:54,240 that those web server installation 198 00:07:51,199 --> 00:07:57,199 i created one third script which 199 00:07:54,240 --> 00:07:59,919 combines the center 7 and ubuntu into 200 00:07:57,199 --> 00:08:02,800 this script which this script actually 201 00:07:59,919 --> 00:08:05,440 have a detection of operating system 202 00:08:02,800 --> 00:08:07,919 that the script is going to be run on 203 00:08:05,440 --> 00:08:10,080 and then based on the operating system 204 00:08:07,919 --> 00:08:11,120 on this show for example in this case 205 00:08:10,080 --> 00:08:14,960 centos 206 00:08:11,120 --> 00:08:16,879 or ubuntu it will install httpd or 207 00:08:14,960 --> 00:08:19,360 apache web server 208 00:08:16,879 --> 00:08:20,400 now i'm going to run this guy 209 00:08:19,360 --> 00:08:21,360 against 210 00:08:20,400 --> 00:08:25,440 uh 211 00:08:21,360 --> 00:08:28,240 my web server which is in this file 212 00:08:25,440 --> 00:08:30,080 7 2 and ubuntu and i'm going to run it 213 00:08:28,240 --> 00:08:32,800 in a 214 00:08:30,080 --> 00:08:32,800 in a for loop 215 00:08:33,919 --> 00:08:37,839 the apache web server setup is complete 216 00:08:36,320 --> 00:08:41,519 on that 3 217 00:08:37,839 --> 00:08:44,159 system let us go into them and verify 218 00:08:41,519 --> 00:08:45,920 the landing page which is the customized 219 00:08:44,159 --> 00:08:48,320 landing page that i have 220 00:08:45,920 --> 00:08:51,040 same go to here and 221 00:08:48,320 --> 00:08:51,040 the ubuntu 222 00:08:53,760 --> 00:08:58,480 as you can see from the demonstration 223 00:08:56,320 --> 00:09:01,920 using shell script as your configuration 224 00:08:58,480 --> 00:09:03,920 tools is going to be disaster 225 00:09:01,920 --> 00:09:06,800 imagine that you're trying to set up 500 226 00:09:03,920 --> 00:09:09,360 servers used completely by shell script 227 00:09:06,800 --> 00:09:10,959 and access search you take a while and 228 00:09:09,360 --> 00:09:13,519 you will not be 229 00:09:10,959 --> 00:09:17,519 nice especially sales script is not a 230 00:09:13,519 --> 00:09:17,519 configuration tools to start with 231 00:09:17,600 --> 00:09:22,959 and that's why in 2012 i start looking 232 00:09:20,480 --> 00:09:25,200 for a better tools to replace my shell 233 00:09:22,959 --> 00:09:28,080 script configuration 234 00:09:25,200 --> 00:09:30,399 i have used cf engine in the past and 235 00:09:28,080 --> 00:09:33,279 just started to learn puppet during that 236 00:09:30,399 --> 00:09:34,640 time but neither of these tools fulfill 237 00:09:33,279 --> 00:09:36,959 what i think 238 00:09:34,640 --> 00:09:38,880 i need in a configuration 239 00:09:36,959 --> 00:09:40,000 management tools 240 00:09:38,880 --> 00:09:42,240 so 241 00:09:40,000 --> 00:09:43,120 what i want is something too simple to 242 00:09:42,240 --> 00:09:45,839 start 243 00:09:43,120 --> 00:09:48,160 which can quickly use and 244 00:09:45,839 --> 00:09:51,040 adapt my shell script instead of 245 00:09:48,160 --> 00:09:52,720 rewriting a whole bunch of configuration 246 00:09:51,040 --> 00:09:53,680 uh into the tools 247 00:09:52,720 --> 00:09:56,480 i 248 00:09:53,680 --> 00:09:59,440 do not want to have extra connection 249 00:09:56,480 --> 00:10:02,839 maybe just use ssh like how i have run 250 00:09:59,440 --> 00:10:05,680 my shell script over the ssh 251 00:10:02,839 --> 00:10:07,519 channel i definitely do not want to have 252 00:10:05,680 --> 00:10:08,800 additional package to be installed on 253 00:10:07,519 --> 00:10:09,760 the target notes that i'm going to 254 00:10:08,800 --> 00:10:11,839 manage 255 00:10:09,760 --> 00:10:13,839 because installing additional package 256 00:10:11,839 --> 00:10:15,120 there mean that i need to do extra work 257 00:10:13,839 --> 00:10:17,040 to ensure 258 00:10:15,120 --> 00:10:19,279 the application or the daemon that 259 00:10:17,040 --> 00:10:20,079 running on the target notes is compliant 260 00:10:19,279 --> 00:10:22,160 and 261 00:10:20,079 --> 00:10:24,000 workable in the 262 00:10:22,160 --> 00:10:25,920 with the masternodes or the management 263 00:10:24,000 --> 00:10:27,279 nodes 264 00:10:25,920 --> 00:10:29,279 i want 265 00:10:27,279 --> 00:10:30,399 a configuration tool that 266 00:10:29,279 --> 00:10:33,120 can use 267 00:10:30,399 --> 00:10:34,959 an easy and understandable syntax 268 00:10:33,120 --> 00:10:37,040 something that descriptive 269 00:10:34,959 --> 00:10:39,120 uh telling us what is going to do what 270 00:10:37,040 --> 00:10:42,000 is going to run 271 00:10:39,120 --> 00:10:44,079 and lastly i want the configuration 272 00:10:42,000 --> 00:10:45,839 setup to be item potent 273 00:10:44,079 --> 00:10:48,480 which means that configuration can be 274 00:10:45,839 --> 00:10:50,480 re-applied as many times as it runs 275 00:10:48,480 --> 00:10:52,640 without changing the end result beyond 276 00:10:50,480 --> 00:10:54,000 what have been defined 277 00:10:52,640 --> 00:10:56,640 and that's when 278 00:10:54,000 --> 00:10:59,519 i discovered ansible 279 00:10:56,640 --> 00:11:01,519 ansible was first introduced by michael 280 00:10:59,519 --> 00:11:03,760 diehan in 2012 281 00:11:01,519 --> 00:11:05,839 mainly write written in python which is 282 00:11:03,760 --> 00:11:08,320 the favorite language for everyone that 283 00:11:05,839 --> 00:11:09,279 do programming develop developers and so 284 00:11:08,320 --> 00:11:12,079 on 285 00:11:09,279 --> 00:11:15,279 but the configuration file in in the 286 00:11:12,079 --> 00:11:17,360 playbook actually use yamaha 287 00:11:15,279 --> 00:11:20,320 yamaha itself is 288 00:11:17,360 --> 00:11:22,480 very fairly easy to understand language 289 00:11:20,320 --> 00:11:25,200 plus and simple also can start with a 290 00:11:22,480 --> 00:11:27,040 simple architecture any one of the notes 291 00:11:25,200 --> 00:11:29,519 that have ansible in store 292 00:11:27,040 --> 00:11:33,760 can be the control or management node to 293 00:11:29,519 --> 00:11:36,800 be used to manage the fleet of systems 294 00:11:33,760 --> 00:11:39,440 and that's why i choose ansible 295 00:11:36,800 --> 00:11:41,519 a few more other reasons i have chosen 296 00:11:39,440 --> 00:11:43,760 ansible at the end is 297 00:11:41,519 --> 00:11:46,000 is agentless you do not need to install 298 00:11:43,760 --> 00:11:48,560 additional package on 299 00:11:46,000 --> 00:11:49,760 the target notes you just require ssh 300 00:11:48,560 --> 00:11:52,000 and python 301 00:11:49,760 --> 00:11:54,560 as i mentioned earlier a yamaha is a 302 00:11:52,000 --> 00:11:56,639 very descriptive language is so 303 00:11:54,560 --> 00:11:58,079 descriptive and human readable and easy 304 00:11:56,639 --> 00:11:59,040 to understand 305 00:11:58,079 --> 00:12:00,880 that 306 00:11:59,040 --> 00:12:03,440 i if i give you the code you mostly can 307 00:12:00,880 --> 00:12:06,079 decipher what is supposed to be run 308 00:12:03,440 --> 00:12:08,079 and you also support item potency 309 00:12:06,079 --> 00:12:09,440 it ensure the same config is maintained 310 00:12:08,079 --> 00:12:11,519 over 311 00:12:09,440 --> 00:12:12,880 over the target notes no matter how many 312 00:12:11,519 --> 00:12:15,440 time we rerun 313 00:12:12,880 --> 00:12:15,440 and we run 314 00:12:15,839 --> 00:12:20,560 and here i'm going to show you a simple 315 00:12:18,480 --> 00:12:23,040 uh ansible architecture design that i 316 00:12:20,560 --> 00:12:25,040 have done which is used in this we which 317 00:12:23,040 --> 00:12:26,720 is going to use in the next demo 318 00:12:25,040 --> 00:12:28,639 i have installed 319 00:12:26,720 --> 00:12:31,360 ansible into my management notes which 320 00:12:28,639 --> 00:12:33,600 is mgt and within the management node 321 00:12:31,360 --> 00:12:36,079 you still need one more 322 00:12:33,600 --> 00:12:38,560 key piece which is the inventory 323 00:12:36,079 --> 00:12:40,720 usually it's a text file that have the 324 00:12:38,560 --> 00:12:41,920 list of hosts that the ansible is going 325 00:12:40,720 --> 00:12:43,680 to manage 326 00:12:41,920 --> 00:12:48,160 and obviously we will need access 327 00:12:43,680 --> 00:12:50,480 connectivity to our target host 328 00:12:48,160 --> 00:12:52,079 and now 329 00:12:50,480 --> 00:12:54,560 in this demo i'm going to show you how 330 00:12:52,079 --> 00:12:58,000 to do it i have shown you how to install 331 00:12:54,560 --> 00:13:00,240 apache web server with a shell script 332 00:12:58,000 --> 00:13:03,600 and now i'm going to use the same shelf 333 00:13:00,240 --> 00:13:07,279 script and run it with ncbi 334 00:13:03,600 --> 00:13:10,079 in order to run ncbr i will need to have 335 00:13:07,279 --> 00:13:12,240 ncba installed on my 336 00:13:10,079 --> 00:13:16,639 control node mgt 337 00:13:12,240 --> 00:13:16,639 which i'm going to install it wire yum 338 00:13:17,680 --> 00:13:22,720 next i will need an inventory file 339 00:13:20,800 --> 00:13:25,760 the inventory file 340 00:13:22,720 --> 00:13:28,720 defines hosts and group of hosts which 341 00:13:25,760 --> 00:13:32,399 the ansible will operate upon 342 00:13:28,720 --> 00:13:34,399 for this i'm going to use the web server 343 00:13:32,399 --> 00:13:37,760 text file that we have created as an 344 00:13:34,399 --> 00:13:40,639 ansible inventory i'm going to create a 345 00:13:37,760 --> 00:13:43,760 simple ansible playbook 346 00:13:40,639 --> 00:13:44,880 which i'm going to call the same thing 347 00:13:43,760 --> 00:13:46,639 the script 348 00:13:44,880 --> 00:13:48,399 module as well as the script i'm going 349 00:13:46,639 --> 00:13:51,519 to run 350 00:13:48,399 --> 00:13:52,800 and we're going to run this 351 00:13:51,519 --> 00:13:56,079 using 352 00:13:52,800 --> 00:13:56,880 ansible playbook command 353 00:13:56,079 --> 00:13:58,639 now 354 00:13:56,880 --> 00:14:00,240 looking at this output 355 00:13:58,639 --> 00:14:01,199 it actually tells us 356 00:14:00,240 --> 00:14:02,720 task 357 00:14:01,199 --> 00:14:05,120 reporting 358 00:14:02,720 --> 00:14:07,040 it first he gathered the information 359 00:14:05,120 --> 00:14:08,639 facts from 360 00:14:07,040 --> 00:14:10,639 our target notes 361 00:14:08,639 --> 00:14:12,959 and then telling us what he's doing is 362 00:14:10,639 --> 00:14:15,040 setting up apache and there's something 363 00:14:12,959 --> 00:14:17,120 changed on those boxes 364 00:14:15,040 --> 00:14:18,480 and this is the summary report of what 365 00:14:17,120 --> 00:14:20,720 happened 366 00:14:18,480 --> 00:14:23,680 since we are running as a script it will 367 00:14:20,720 --> 00:14:25,680 not be in item polden it will still tell 368 00:14:23,680 --> 00:14:26,880 us something have changed 369 00:14:25,680 --> 00:14:29,360 which 370 00:14:26,880 --> 00:14:30,959 is part of the dilemma when we use the 371 00:14:29,360 --> 00:14:34,160 module script 372 00:14:30,959 --> 00:14:37,760 the true power of ncbo is when you are 373 00:14:34,160 --> 00:14:39,199 using or utilizing ansible module 374 00:14:37,760 --> 00:14:41,760 correctly 375 00:14:39,199 --> 00:14:43,680 take for example 376 00:14:41,760 --> 00:14:47,040 i have created 377 00:14:43,680 --> 00:14:49,360 a myapp setup.yaml which is an ancient 378 00:14:47,040 --> 00:14:52,639 playbook using the correct and simple 379 00:14:49,360 --> 00:14:55,199 module instead of using script 380 00:14:52,639 --> 00:14:58,240 in this new ncbi playbook 381 00:14:55,199 --> 00:15:01,279 instead of using script module i'm using 382 00:14:58,240 --> 00:15:03,920 other ansible modules such as package to 383 00:15:01,279 --> 00:15:06,240 install relevant package for santos 384 00:15:03,920 --> 00:15:07,600 and i'm using service to start the 385 00:15:06,240 --> 00:15:10,399 service 386 00:15:07,600 --> 00:15:14,399 http service for centos as well 387 00:15:10,399 --> 00:15:16,800 as for installing apache in ubuntu i 388 00:15:14,399 --> 00:15:19,760 need to install apache tool as well as 389 00:15:16,800 --> 00:15:23,199 enable apache to service 390 00:15:19,760 --> 00:15:25,680 to customize my index base page based on 391 00:15:23,199 --> 00:15:27,360 the hostname i used 392 00:15:25,680 --> 00:15:30,240 the template module 393 00:15:27,360 --> 00:15:33,279 which utilize or convert 394 00:15:30,240 --> 00:15:37,199 and simple facts or variable and lastly 395 00:15:33,279 --> 00:15:39,839 i use the copy module to copy the files 396 00:15:37,199 --> 00:15:41,759 from the management notes into the 397 00:15:39,839 --> 00:15:45,519 target notes 398 00:15:41,759 --> 00:15:47,680 for this i have created a new inventory 399 00:15:45,519 --> 00:15:50,399 file 400 00:15:47,680 --> 00:15:53,920 host and within this inventory file i 401 00:15:50,399 --> 00:15:56,800 have grouped all three of my web servers 402 00:15:53,920 --> 00:15:58,480 under a host group name web servers 403 00:15:56,800 --> 00:16:01,199 we are going to run 404 00:15:58,480 --> 00:16:01,199 our new 405 00:16:02,399 --> 00:16:08,959 playbook 406 00:16:03,440 --> 00:16:11,199 and against the inventory part 407 00:16:08,959 --> 00:16:12,959 as you can see from this 408 00:16:11,199 --> 00:16:15,440 and simple run 409 00:16:12,959 --> 00:16:18,240 the output is much 410 00:16:15,440 --> 00:16:20,240 nicer it tell you what you have done and 411 00:16:18,240 --> 00:16:21,759 if it's already done for example php 412 00:16:20,240 --> 00:16:22,959 have been installed you will just show 413 00:16:21,759 --> 00:16:24,560 you okay 414 00:16:22,959 --> 00:16:26,680 and if we have something changed for 415 00:16:24,560 --> 00:16:28,800 example my template is different for the 416 00:16:26,680 --> 00:16:30,399 index.html it will tell you something 417 00:16:28,800 --> 00:16:34,160 have changed 418 00:16:30,399 --> 00:16:36,959 and if i run this playbook again 419 00:16:34,160 --> 00:16:38,079 you will notice that there's nothing 420 00:16:36,959 --> 00:16:40,399 changed 421 00:16:38,079 --> 00:16:43,519 anymore because everyone everything have 422 00:16:40,399 --> 00:16:46,000 been sell according to our ansible 423 00:16:43,519 --> 00:16:46,000 playbook 424 00:16:46,320 --> 00:16:51,839 we have used ncbi playbook to sell up 425 00:16:49,680 --> 00:16:52,880 and configure our web server 426 00:16:51,839 --> 00:16:55,680 using 427 00:16:52,880 --> 00:16:58,399 myself setup.yaml 428 00:16:55,680 --> 00:16:59,839 now i'm going to show you how do we make 429 00:16:58,399 --> 00:17:02,240 our 430 00:16:59,839 --> 00:17:03,360 mys my setup.yaml 431 00:17:02,240 --> 00:17:06,319 modular 432 00:17:03,360 --> 00:17:07,600 i'm going to split my task into three 433 00:17:06,319 --> 00:17:09,839 different rows 434 00:17:07,600 --> 00:17:12,000 now let's go into rows and you will see 435 00:17:09,839 --> 00:17:14,400 that i have three rows a rows that take 436 00:17:12,000 --> 00:17:16,400 care of the part for ubuntu the rows 437 00:17:14,400 --> 00:17:19,520 that take care of santos and a row that 438 00:17:16,400 --> 00:17:20,880 take care of apache configuration 439 00:17:19,520 --> 00:17:23,039 we will look at 440 00:17:20,880 --> 00:17:26,240 our centos row 441 00:17:23,039 --> 00:17:27,760 the main playbook here is under task 442 00:17:26,240 --> 00:17:30,480 main 443 00:17:27,760 --> 00:17:32,880 and in here you will see that i have 444 00:17:30,480 --> 00:17:34,640 configured to have a 445 00:17:32,880 --> 00:17:36,640 additional package to be installed for 446 00:17:34,640 --> 00:17:39,840 centos and then i want to remove 447 00:17:36,640 --> 00:17:41,440 unwanted package here 448 00:17:39,840 --> 00:17:43,120 in apache 449 00:17:41,440 --> 00:17:44,000 i will have 450 00:17:43,120 --> 00:17:46,240 a 451 00:17:44,000 --> 00:17:48,880 place where i need to install apache web 452 00:17:46,240 --> 00:17:50,640 server for centos and apache web server 453 00:17:48,880 --> 00:17:53,520 for ubuntu 454 00:17:50,640 --> 00:17:55,280 as well as extra module that we require 455 00:17:53,520 --> 00:17:58,880 for our web server 456 00:17:55,280 --> 00:18:02,320 plus the customization of our 457 00:17:58,880 --> 00:18:06,080 landing page as for this 458 00:18:02,320 --> 00:18:08,880 um i will create i have created a new 459 00:18:06,080 --> 00:18:09,919 playbook called site.yaml which will 460 00:18:08,880 --> 00:18:11,840 call 461 00:18:09,919 --> 00:18:13,360 each of the row 462 00:18:11,840 --> 00:18:16,240 when it run 463 00:18:13,360 --> 00:18:18,320 so for example i have centos that will 464 00:18:16,240 --> 00:18:19,840 only include the center package and 465 00:18:18,320 --> 00:18:21,520 ubuntu 466 00:18:19,840 --> 00:18:22,640 this will be run for 467 00:18:21,520 --> 00:18:24,000 all 468 00:18:22,640 --> 00:18:26,160 hosts 469 00:18:24,000 --> 00:18:28,960 but if you are part of 470 00:18:26,160 --> 00:18:31,120 web server you will run 471 00:18:28,960 --> 00:18:32,799 and set up apache 472 00:18:31,120 --> 00:18:36,880 now let us 473 00:18:32,799 --> 00:18:36,880 try out this playbook 474 00:18:37,840 --> 00:18:42,280 against our existing host 475 00:18:42,320 --> 00:18:46,320 and you can see that there's no error 476 00:18:44,720 --> 00:18:49,280 and there's exchange 477 00:18:46,320 --> 00:18:50,960 if we scroll up and see the output 478 00:18:49,280 --> 00:18:52,559 you'll notice that 479 00:18:50,960 --> 00:18:53,760 you will install 480 00:18:52,559 --> 00:18:57,200 santos 481 00:18:53,760 --> 00:18:59,280 stuff for only centos systems and you 482 00:18:57,200 --> 00:19:00,880 install ubuntu 483 00:18:59,280 --> 00:19:04,080 row when it's 484 00:19:00,880 --> 00:19:06,880 detected is ubuntu but if it's a apache 485 00:19:04,080 --> 00:19:09,440 row because this three servers is in the 486 00:19:06,880 --> 00:19:13,280 web server's host group you will 487 00:19:09,440 --> 00:19:13,280 install apache and configure 488 00:19:15,679 --> 00:19:20,799 in the demo i show you how we can 489 00:19:18,160 --> 00:19:23,360 quickly use the shell script in ansible 490 00:19:20,799 --> 00:19:26,640 and then how do we quickly do a nc play 491 00:19:23,360 --> 00:19:27,760 play and simple playbook before we 492 00:19:26,640 --> 00:19:29,679 go into 493 00:19:27,760 --> 00:19:32,000 ansible row 494 00:19:29,679 --> 00:19:34,960 so what is ancieboro that i demonstrate 495 00:19:32,000 --> 00:19:38,080 in the example earlier it's just a way 496 00:19:34,960 --> 00:19:40,960 for us to develop reusable playbook by 497 00:19:38,080 --> 00:19:43,679 grouping the component and encapsulating 498 00:19:40,960 --> 00:19:44,720 the tasks the variable files 499 00:19:43,679 --> 00:19:46,480 together 500 00:19:44,720 --> 00:19:47,360 it actually helps 501 00:19:46,480 --> 00:19:49,840 to 502 00:19:47,360 --> 00:19:51,120 modularize and organize our ansible 503 00:19:49,840 --> 00:19:52,960 playbook 504 00:19:51,120 --> 00:19:55,520 but the good news is we do not need to 505 00:19:52,960 --> 00:19:59,120 write all the ansible rules 506 00:19:55,520 --> 00:20:02,480 by ourselves you can always go on to nc 507 00:19:59,120 --> 00:20:04,080 by galaxy and search for other expert 508 00:20:02,480 --> 00:20:06,640 written roles 509 00:20:04,080 --> 00:20:09,200 you the easiest way that i find is go to 510 00:20:06,640 --> 00:20:12,000 the ansible galaxy website and search 511 00:20:09,200 --> 00:20:13,919 for the role or contain that you want or 512 00:20:12,000 --> 00:20:15,120 if you want you still can run it via 513 00:20:13,919 --> 00:20:17,760 command line 514 00:20:15,120 --> 00:20:19,360 using ncbi galaxy search and the keyword 515 00:20:17,760 --> 00:20:22,799 that you're looking for 516 00:20:19,360 --> 00:20:25,919 as my favorite author in ansible galaxy 517 00:20:22,799 --> 00:20:27,120 jeff gerling aka girling guy have 518 00:20:25,919 --> 00:20:29,919 marvelous 519 00:20:27,120 --> 00:20:31,280 role standard written in ancient galaxy 520 00:20:29,919 --> 00:20:33,679 check him out 521 00:20:31,280 --> 00:20:36,080 one last thing good about ansible galaxy 522 00:20:33,679 --> 00:20:37,520 is it actually help you to have a 523 00:20:36,080 --> 00:20:39,679 standardized 524 00:20:37,520 --> 00:20:43,600 role structured when you 525 00:20:39,679 --> 00:20:43,600 want to write your own ansible rows 526 00:20:43,679 --> 00:20:48,480 i'm going to show you when you run 527 00:20:46,240 --> 00:20:50,640 on the command line and simple galaxy 528 00:20:48,480 --> 00:20:53,679 this is what you will find 529 00:20:50,640 --> 00:20:55,600 which i find that is not really 530 00:20:53,679 --> 00:20:58,080 uh interesting to look at 531 00:20:55,600 --> 00:21:00,159 but if you search it on the website 532 00:20:58,080 --> 00:21:02,400 this is what you're gonna find and you 533 00:21:00,159 --> 00:21:04,960 will have a lot of more information this 534 00:21:02,400 --> 00:21:07,200 is what apache and how many people have 535 00:21:04,960 --> 00:21:10,159 downloaded and this is my favorite 536 00:21:07,200 --> 00:21:10,159 author building 537 00:21:10,640 --> 00:21:14,240 so far 538 00:21:12,000 --> 00:21:15,679 i have only been using ancient on the 539 00:21:14,240 --> 00:21:17,360 terminal 540 00:21:15,679 --> 00:21:20,080 using command line 541 00:21:17,360 --> 00:21:22,159 but with a great tool such as ansible if 542 00:21:20,080 --> 00:21:23,760 you only do things via command line by 543 00:21:22,159 --> 00:21:24,880 typing it 544 00:21:23,760 --> 00:21:27,120 i believe 545 00:21:24,880 --> 00:21:30,640 eventually we will have a lot of problem 546 00:21:27,120 --> 00:21:33,280 because as a human we tend to type and 547 00:21:30,640 --> 00:21:35,600 cause typo error you might be targeting 548 00:21:33,280 --> 00:21:37,440 a wrong system because 549 00:21:35,600 --> 00:21:39,679 you just target a wrong environment 550 00:21:37,440 --> 00:21:40,400 instead of dev you go to pro 551 00:21:39,679 --> 00:21:42,559 but 552 00:21:40,400 --> 00:21:46,240 don't you worry there's actually an open 553 00:21:42,559 --> 00:21:48,320 source project named awx which actually 554 00:21:46,240 --> 00:21:51,200 provides a pretty decent i would say 555 00:21:48,320 --> 00:21:52,400 nice web user interface for newbies that 556 00:21:51,200 --> 00:21:54,960 does not 557 00:21:52,400 --> 00:21:57,280 does not really fancy command line and 558 00:21:54,960 --> 00:21:59,520 rest api for people that doing 559 00:21:57,280 --> 00:22:00,640 development develop development and 560 00:21:59,520 --> 00:22:02,400 devops 561 00:22:00,640 --> 00:22:05,440 and you actually have to the task engine 562 00:22:02,400 --> 00:22:07,520 is built on top of our assisting uh 563 00:22:05,440 --> 00:22:10,559 ansible core infrastructure you don't 564 00:22:07,520 --> 00:22:13,440 need anything extra and android x itself 565 00:22:10,559 --> 00:22:15,120 will give you a centralized location 566 00:22:13,440 --> 00:22:16,480 to manage the ansible playbook and 567 00:22:15,120 --> 00:22:19,120 inventories 568 00:22:16,480 --> 00:22:20,720 and now let me quickly show you the demo 569 00:22:19,120 --> 00:22:25,200 how i use ansible 570 00:22:20,720 --> 00:22:28,799 awx to deploy my apache setup 571 00:22:25,200 --> 00:22:31,679 okay how we can import the ansible row 572 00:22:28,799 --> 00:22:32,880 that we have created earlier into the 573 00:22:31,679 --> 00:22:36,720 awx 574 00:22:32,880 --> 00:22:36,720 this is my aws demo box 575 00:22:38,080 --> 00:22:43,200 after you log in we should we need to 576 00:22:41,520 --> 00:22:45,200 actually create a project 577 00:22:43,200 --> 00:22:47,280 under project tab you're going to add a 578 00:22:45,200 --> 00:22:49,200 new project i'm going to name my project 579 00:22:47,280 --> 00:22:50,480 lca2 580 00:22:49,200 --> 00:22:52,640 and sybil 581 00:22:50,480 --> 00:22:54,720 i'm going to choose where the project is 582 00:22:52,640 --> 00:22:56,960 going to get the source from i'm going 583 00:22:54,720 --> 00:22:59,440 to get it from the github that i have 584 00:22:56,960 --> 00:22:59,440 created 585 00:22:59,520 --> 00:23:04,080 and i'm going to just save it 586 00:23:02,400 --> 00:23:06,480 after you save 587 00:23:04,080 --> 00:23:08,880 you can create inventory 588 00:23:06,480 --> 00:23:10,720 inventory like i said earlier is where 589 00:23:08,880 --> 00:23:13,280 you keep all your hosts 590 00:23:10,720 --> 00:23:14,799 information your remote target 591 00:23:13,280 --> 00:23:17,039 and for this i'm going to add a new 592 00:23:14,799 --> 00:23:18,799 inventory 593 00:23:17,039 --> 00:23:22,480 uh you can put anything here but i'm 594 00:23:18,799 --> 00:23:26,480 going to say ncbi 2022 595 00:23:22,480 --> 00:23:26,480 let's call it inventory 596 00:23:28,320 --> 00:23:32,960 and i'm going to save it after you save 597 00:23:30,720 --> 00:23:35,200 there's one important options here call 598 00:23:32,960 --> 00:23:37,200 source and this is important because 599 00:23:35,200 --> 00:23:39,840 this is 600 00:23:37,200 --> 00:23:42,080 a feature that let us source from the 601 00:23:39,840 --> 00:23:44,159 project that we have created earlier i'm 602 00:23:42,080 --> 00:23:47,760 going to source from the project 603 00:23:44,159 --> 00:23:48,720 and the project we have is lca 2022 and 604 00:23:47,760 --> 00:23:50,240 silver 605 00:23:48,720 --> 00:23:52,799 and i'm going to choose the inventory 606 00:23:50,240 --> 00:23:54,640 file that i have kept in my git report 607 00:23:52,799 --> 00:23:56,000 which is ancient host that we have been 608 00:23:54,640 --> 00:23:57,600 using 609 00:23:56,000 --> 00:24:00,480 and i'm going to name it 610 00:23:57,600 --> 00:24:02,240 i'm going to name this source host 611 00:24:00,480 --> 00:24:05,200 and i'm going to save 612 00:24:02,240 --> 00:24:07,520 and after i save i do a sync 613 00:24:05,200 --> 00:24:11,200 by doing a sync 614 00:24:07,520 --> 00:24:12,080 awx will actually import the host 615 00:24:11,200 --> 00:24:13,520 from 616 00:24:12,080 --> 00:24:17,039 this project 617 00:24:13,520 --> 00:24:19,679 into awx you will take a one 618 00:24:17,039 --> 00:24:22,640 let's come to here there you go and we 619 00:24:19,679 --> 00:24:24,960 will have our web server host group as 620 00:24:22,640 --> 00:24:26,960 well as the three web servers 621 00:24:24,960 --> 00:24:29,919 in the host group the next thing we need 622 00:24:26,960 --> 00:24:33,039 to do is to create an 623 00:24:29,919 --> 00:24:34,000 credential for remote login i'm going to 624 00:24:33,039 --> 00:24:36,559 use 625 00:24:34,000 --> 00:24:38,960 regram which is the default user that i 626 00:24:36,559 --> 00:24:40,720 have in my vm and i'm going to set up as 627 00:24:38,960 --> 00:24:44,080 a machine credential 628 00:24:40,720 --> 00:24:45,600 with the username migrant and with its 629 00:24:44,080 --> 00:24:48,159 password 630 00:24:45,600 --> 00:24:50,559 in a production environment i do not 631 00:24:48,159 --> 00:24:52,559 encourage you to use password please use 632 00:24:50,559 --> 00:24:53,600 accessory private key for 633 00:24:52,559 --> 00:24:55,679 login 634 00:24:53,600 --> 00:24:57,679 the next thing in here you should 635 00:24:55,679 --> 00:25:00,400 actually ensure that your previous 636 00:24:57,679 --> 00:25:03,679 exclamation method is set to sudo 637 00:25:00,400 --> 00:25:03,679 and we are going to save this 638 00:25:04,000 --> 00:25:10,880 the last part for getting awx working is 639 00:25:07,600 --> 00:25:12,840 we need to set up job template 640 00:25:10,880 --> 00:25:15,840 in here we're going to add a new job 641 00:25:12,840 --> 00:25:18,480 template and we are going to source it 642 00:25:15,840 --> 00:25:19,600 again from our project that we have done 643 00:25:18,480 --> 00:25:21,200 earlier 644 00:25:19,600 --> 00:25:23,919 and i'm going to choose a playbook and 645 00:25:21,200 --> 00:25:26,320 the playbook is site.yaml 646 00:25:23,919 --> 00:25:27,440 and i'm going to have my inventory point 647 00:25:26,320 --> 00:25:28,960 to 648 00:25:27,440 --> 00:25:32,000 this guy 649 00:25:28,960 --> 00:25:34,080 and to ensure i'm going to use very good 650 00:25:32,000 --> 00:25:34,960 and i'm going to say this 651 00:25:34,080 --> 00:25:35,840 is 652 00:25:34,960 --> 00:25:37,200 my 653 00:25:35,840 --> 00:25:40,799 lca 654 00:25:37,200 --> 00:25:43,120 2022 site setup 655 00:25:40,799 --> 00:25:45,520 after that is done make sure that you 656 00:25:43,120 --> 00:25:47,600 click on privilege escalation 657 00:25:45,520 --> 00:25:49,440 and if this is to meant to run 658 00:25:47,600 --> 00:25:51,520 repetitively 659 00:25:49,440 --> 00:25:53,679 enable fax storage as well that will 660 00:25:51,520 --> 00:25:54,880 speed up in the future 661 00:25:53,679 --> 00:25:57,600 run 662 00:25:54,880 --> 00:25:58,640 save after you save you have options to 663 00:25:57,600 --> 00:25:59,919 launch 664 00:25:58,640 --> 00:26:02,960 the job 665 00:25:59,919 --> 00:26:02,960 i will launch it now 666 00:26:06,000 --> 00:26:11,840 the job complete without any failure 667 00:26:09,120 --> 00:26:14,480 and we have a few changes in our centers 668 00:26:11,840 --> 00:26:16,320 and ubuntu setup 669 00:26:14,480 --> 00:26:19,520 if you scroll up further in the output 670 00:26:16,320 --> 00:26:22,640 windows you will notice that the output 671 00:26:19,520 --> 00:26:25,600 display here is quite similar to the 672 00:26:22,640 --> 00:26:28,159 output that we saw when we run ansible 673 00:26:25,600 --> 00:26:30,480 via the command line 674 00:26:28,159 --> 00:26:33,760 one of the benefit that you can get from 675 00:26:30,480 --> 00:26:35,200 the output is when you click on the 676 00:26:33,760 --> 00:26:37,360 output 677 00:26:35,200 --> 00:26:38,480 and you can drill down further of what 678 00:26:37,360 --> 00:26:41,200 have been done 679 00:26:38,480 --> 00:26:44,240 or run by the ncbi you will display in a 680 00:26:41,200 --> 00:26:46,559 json format click on the 681 00:26:44,240 --> 00:26:49,600 rocket to relaunch the job 682 00:26:46,559 --> 00:26:51,520 and that will start the jobs again 683 00:26:49,600 --> 00:26:54,240 when you run the job again for the 684 00:26:51,520 --> 00:26:57,120 second time you will notice there is no 685 00:26:54,240 --> 00:26:59,520 more changes because of the item button 686 00:26:57,120 --> 00:27:01,440 behavior of n sebum 687 00:26:59,520 --> 00:27:03,840 if you want to get more information of 688 00:27:01,440 --> 00:27:05,039 how to use adwx you can always get the 689 00:27:03,840 --> 00:27:07,840 help page 690 00:27:05,039 --> 00:27:07,840 here 691 00:27:10,799 --> 00:27:16,720 and that concludes my discovery journey 692 00:27:14,240 --> 00:27:18,960 to find the right tools to help me to do 693 00:27:16,720 --> 00:27:21,360 my configuration management i have 694 00:27:18,960 --> 00:27:22,559 started doing shell scripting 695 00:27:21,360 --> 00:27:25,679 ended up i 696 00:27:22,559 --> 00:27:30,080 shelve it out and i use ancient mainly 697 00:27:25,679 --> 00:27:30,080 to do my configuration management 698 00:27:31,039 --> 00:27:35,640 and before i end the talk i actually 699 00:27:33,360 --> 00:27:39,360 want to say thank you for 700 00:27:35,640 --> 00:27:41,440 lca2 for providing this opportunity for 701 00:27:39,360 --> 00:27:42,960 me to share this journey and all the 702 00:27:41,440 --> 00:27:46,240 attendees and volunteers and tech 703 00:27:42,960 --> 00:27:47,760 support who work hard for the success 704 00:27:46,240 --> 00:27:50,000 i actually want to have a special shout 705 00:27:47,760 --> 00:27:52,480 out to emily dunham because of her 706 00:27:50,000 --> 00:27:54,640 speech you should speak that give me the 707 00:27:52,480 --> 00:27:56,640 courage and encouragement to submit my 708 00:27:54,640 --> 00:27:58,399 talk to lca 709 00:27:56,640 --> 00:28:01,039 and special thanks to michael diehan for 710 00:27:58,399 --> 00:28:02,480 his wonderful work in ansible and jeff 711 00:28:01,039 --> 00:28:06,320 girling for sharing his ancient 712 00:28:02,480 --> 00:28:08,080 knowledge which i bought a book from 713 00:28:06,320 --> 00:28:09,840 if you have any feedback comments and 714 00:28:08,080 --> 00:28:12,320 questions you can drop me an email send 715 00:28:09,840 --> 00:28:14,840 me a tweet and i have my public github 716 00:28:12,320 --> 00:28:18,320 that have contained some of my work in 717 00:28:14,840 --> 00:28:21,200 ansible my try and error in puppet and 718 00:28:18,320 --> 00:28:23,679 some of my containerizations are try out 719 00:28:21,200 --> 00:28:26,559 i do have an infrequent update block in 720 00:28:23,679 --> 00:28:28,159 wordpress which i update maybe once a 721 00:28:26,559 --> 00:28:29,760 year but 722 00:28:28,159 --> 00:28:31,760 that's it 723 00:28:29,760 --> 00:28:33,120 thank you very much and i hope my 724 00:28:31,760 --> 00:28:37,159 journey will kickstart your 725 00:28:33,120 --> 00:28:37,159 configuration story as well 726 00:28:48,240 --> 00:28:51,200 simon i can't hear you 727 00:28:53,360 --> 00:28:57,799 luckily i was muted when i saw them 728 00:28:59,600 --> 00:29:05,120 so someone asked wouldn't it be easy to 729 00:29:01,760 --> 00:29:07,279 have the http the apache name as a host 730 00:29:05,120 --> 00:29:09,360 bar and then use that to install the 731 00:29:07,279 --> 00:29:11,279 package and service with the package and 732 00:29:09,360 --> 00:29:14,159 service module 733 00:29:11,279 --> 00:29:16,080 is i'm just giving a quick demonstration 734 00:29:14,159 --> 00:29:18,080 of everything in the text very far the 735 00:29:16,080 --> 00:29:20,559 correct way i would be doing is put it 736 00:29:18,080 --> 00:29:23,200 as a variable and use that facts to set 737 00:29:20,559 --> 00:29:24,720 it for different uh distribution or 738 00:29:23,200 --> 00:29:26,640 operating system if you have different 739 00:29:24,720 --> 00:29:31,039 package and for example you are going to 740 00:29:26,640 --> 00:29:32,080 install ngix inside apache it's possible 741 00:29:31,039 --> 00:29:33,919 okay 742 00:29:32,080 --> 00:29:35,840 i think that's all the questions thank 743 00:29:33,919 --> 00:29:37,919 you very much for your talk 744 00:29:35,840 --> 00:29:39,919 um that's that is the end of our 745 00:29:37,919 --> 00:29:41,840 conference today thank you for everyone 746 00:29:39,919 --> 00:29:44,640 for coming along thank you to all the 747 00:29:41,840 --> 00:29:46,960 speakers and thank you to the lca tech 748 00:29:44,640 --> 00:29:48,159 people in our room and 749 00:29:46,960 --> 00:29:49,840 elsewhere 750 00:29:48,159 --> 00:29:53,640 and i hope you enjoy the rest of the 751 00:29:49,840 --> 00:29:53,640 conference right